タグ

ブックマーク / qiita.com/ryota_i (1)

  • SQLでグループごとに上位数件ずつ取得する方法(Window関数) - Qiita

    numの大きいものから上位5件ずつ取得する nameごとにnumの大きいものから上位5件ずつ取得します。 row_number()関数を使ってnumの降順に番号を付ける。 row_number()の代わりにrank()関数を使うとランキングの順位(同順位は同じ値)で取得できる。 select * from ( select name ,title ,num ,row_number() over (partition by name order by num desc) as rank from book ) where rank <= 5 window関数 ※ row_number()、rank()、avgなど表につけたい関数を指定する ⇒ 集約関数と異なり行自体はグループ化せずにカラムを付加するイメージ ※ over … ウィンドウ関数を使う宣言のようなもの(ウィンドウ関数の処理定義)

    SQLでグループごとに上位数件ずつ取得する方法(Window関数) - Qiita
  • 1