在Presto SQL中选择Top#?

Phi*_*eka 8 sql presto

Presto SQL在SELECT语句中是否真的缺少TOP X功能?

如果是这样,同时有解决方法吗?

https://prestodb.io/

Dav*_*ips 13

如果您只想限制结果集中的行数,可以使用LIMIT,有或没有ORDER BY:

SELECT department, salary
FROM employees
ORDER BY salary DESC
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

如果希望每个组具有最高值,则可以使用标准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
Run Code Online (Sandbox Code Playgroud)