web-dev-qa-db-ja.com

Presto SQLの上位#を選択しますか?

Presto SQLはSELECTステートメントのTOP X機能を本当に欠いていますか?

もしそうなら、当面の回避策はありますか?

https://prestodb.io/

10
Phillip Deneka

結果セットの行数を制限するだけの場合は、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
_
15
David Phillips