前提
mysqlを使用
実現したいこと
サブクエリにてfavoritesをuserId単位でcountした結果を使ってランキングを取得したためRANK関数を使用したのですがsyntaxエラーが発生しました。
予約語のエラーなのかと思い、テーブル名を「`(バッククウォート)」で囲ったのですが、解消されませんでした。
RANK関数なしだと動くのですが、RANK関数の使い方どこがおかしいのでしょうか?
発生している問題・エラーメッセージ
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( ORDER BY f.favoriteCnt DESC ) AS rank from users AS u
該当のソースコード
sql
1select 2 f.userId, 3 f.favoriteCnt, 4 RANK() OVER( 5 ORDER BY 6 f.favoriteCnt DESC 7 ) AS rank 8from 9 users AS u 10 INNER JOIN ( 11 select 12 userId, 13 count(*) AS favoriteCnt 14 from 15 favorites 16 group by 17 userId 18 ) AS f on f.userId = u.id
試したこと
テーブル名を「`(バッククウォート)」で囲う
RANK関数なしでの実行

回答1件
あなたの回答
tips
プレビュー