SQL tricks
January 22
FETCH FIRST … ROWS WITH TIES
В этой статье я хочу показать новще решение распостраненной задачи. Найти в таблице записи с максимальным значением в одной из колонок.
Для примера мы будем искать сотрудников с максимальной зарплатой.
Стандартное решение состоит в том чтобы найти максимальное значенеи с столбце зарплата и затем использоват его в качестве фильтра.
select * from employees where salary = (select max(salary) from employees);
Однако стандарт SQL:2008 предлагает новое решение данной задачи: FETCH FIRST … ROWS WITH TIES
select * from employees order by salary desc fetch first 1 rows with ties;
Стаким же успехом используя конструкцию FETCH FIRST … ROWS WITH TIES легко решается задача по поиску N максимальных.минимальных значений решение которой другими способми уже не так тривиально
https://sqlize.online/sql/psql13/50703dc61c4b65b38ffaa338bbe7f683/