Получите третью по величине зарплату в SQL с примерами кода

Чтобы получить третью по величине зарплату из базы данных SQL, вы можете использовать несколько методов. Я предлагаю вам три распространенных подхода:

Метод 1: использование предложений LIMIT и OFFSET

SELECT salary
FROM employees
ORDER BY salary DESC
LIMIT 1 OFFSET 2;

Этот запрос упорядочивает зарплаты в порядке убывания и извлекает третью строку, используя предложение LIMIT, чтобы ограничить набор результатов одной строкой, и предложение OFFSET, чтобы пропустить первые две строки.

Метод 2. Использование подзапроса

SELECT salary
FROM employees
WHERE salary = (
  SELECT DISTINCT salary
  FROM employees
  ORDER BY salary DESC
  LIMIT 1 OFFSET 2
);

В этом подходе используется подзапрос для определения третьей по величине зарплаты. Подзапрос извлекает различные зарплаты в порядке убывания, а внешний запрос выбирает строки с зарплатой, равной результату подзапроса.

Способ 3: использование функции ROW_NUMBER()

SELECT salary
FROM (
  SELECT salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num
  FROM employees
) AS subquery
WHERE row_num = 3;

В этом методе функция ROW_NUMBER() используется для присвоения номера строки каждой зарплате в порядке убывания. Затем внешний запрос выбирает строки с номером 3.