Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
SQL グループごとに上位数件ずつ取得したい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30654#CommentId84741
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
新人転職者
 (社会人)
投稿日時
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件が並んだテーブルを取得したいのですが、どなたかご教授願います。