Действительно ли Presto SQL не хватает функциональности TOP X в операторах SELECT?
Если да, есть ли пока обходной путь?
Действительно ли Presto SQL не хватает функциональности TOP X в операторах SELECT?
Если да, есть ли пока обходной путь?
Если вы просто хотите ограничить количество строк в наборе результатов, вы можете использовать LIMIT
с или без ORDER BY
:
SELECT department, salary
FROM employees
ORDER BY salary DESC
LIMIT 10
Если вам нужны максимальные значения для каждой группы, вы можете использовать стандартную оконную функцию SQL row_number()
. Например, чтобы получить 3 лучших сотрудника в отделе по заработной плате:
SELECT department, salary
FROM (
SELECT department, salary row_number() OVER (
PARTITION BY department
ORDER BY salary DESC) AS rn
FROM employees
)
WHERE rn <= 3
select mode() within group (order by X) from abc
наверное? Это действительный Postgres, и он значительно упрощает жизнь при работе с вложенными подподподзапросами по сравнению с решением, опубликованным как принятый ответ. - person Jivan   schedule 12.04.2019