SQLServer グループごとに上位3位までを表示する
ROW_NUMBDR
結果セットの出力に番号(クエリ実行時の一時的な値)を設定して抽出
名前が同じで、年齢がバラバラの動物テーブルを例とする
Usage
SELECT *
FROM (
SELECT
NAME,
AGE,
ROW_NUMBER() OVER (PARTITION BY NAME ORDER BY AGE DESC ) AS NUMBER
FROM
ZOO
) AS ZOO
WHERE
NUMBER <= 3;
動物の名前ごとに、年齢順に上位3位が表示される