TGViewer
SQL и Базы Данных SQL и Базы Данных @prosql · 3.69K subscribers
Post #256 1.97K
Трюк дня. Найти второе место по зарплате. Решение.

Решение 1: использование IFNULL и OFFSET

• IFNULL(expression, alt): эта функция возвращает аргумент expression в случае, если он не равен null. В противном случае возвращается аргумент alt. Мы используем эту функцию чтобы возвратить null, если в таблице не окажется искомого значения.
• OFFSET: этот оператор используется с ORDER BY для того чтобы отбросить первые n строк. Используется для получения второго по величине значения.

SELECT
IFNULL(
(SELECT DISTINCT salary
FROM employee
ORDER BY salary DESC
LIMIT 1
OFFSET 1
), null) AS sec_salary
FROM employee
LIMIT 1


Решение 2: использование MAX

Здесь выбирается самое большое значение зарплаты, не равное максимальной зарплате, полученной по всей таблице. В результате мы и получаем то, что нужно — вторую по величине зарплату.

SELECT
MAX(salary) AS sec_salary
FROM Employee
WHERE salary != (SELECT MAX(salary) FROM employee)


#tips
  • ❤ 5
  • 👍 4
  • 🤔 3
More from @prosql
  1. Sep 9, 2026Если вы ище*те работу, то мой вам совет: перед тем как отправлять ещё 30 откликов, проверь…
  2. Sep 9, 2026Post #688
  3. Sep 8, 2026Вакансии на удалёнке — канал для IT-Релокации или нахождению вакансий на удалёнке. 🟠 Толь…
  4. Aug 23, 2026Каналы с книгами по программированию по различным технологиям. Во всех каналах книги можно…
  5. Aug 13, 2026сайт, который помогает пройти ATS фильтр и улучшить ваше IT-резюме UpdateCV.me Сервис для…
  6. Jul 30, 2026PostgreSQL: SQL + PL/pgSQL Автор: Олег Ткачев Год издания: 2024 #postgresql #sql #ru Скача…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →