投稿者 新人転職者  (社会人) 投稿日時 2021/10/8 17:01:02
https://qiita.com/gooddoog/items/e66818a1479e24fd413e
上記URLでの例のように
あるテーブルでグループごとに数件取得したいのですが、
URL先と同じ記述では「)に不適切な構文があります」と出でうまくいきません。
入れ子?構造にする必要はないかと思い下記のようにアレンジしたところ

 select
   name
  ,title
  ,num
  ,row_number() over (partition by name order by num desc) as rank
   from
   book
 where rank <= 5

「rankが無効です」と出てきてエラーになりました。どうやらSQLの処理順が関係しているらしく、select句のas rankより先にwhere 句のrankを通って定義前なのでエラーになるようです。

自分は実際にはrank=1で各グループの上位1件が並んだテーブルを取得したいのですが、どなたかご教授願います。