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