MySQL で結果をランク付けするクエリがあります。
SET @rank := 0;
SELECT Name, Score, @rank := @rank + 1
FROM Results
ORDER BY Score
これは、平均スコアに基づいてランキングを作成しようとするまでは問題なく機能します。
SET @rank := 0;
SELECT Name, AVG(Score) as AvScore, @rank := @rank + 1
FROM Results
ORDER BY AvScore
これを実行すると、AVG のために 1 つのレコードだけが返されます。ただし、名前に GROUP BY を追加して、全員の平均を一覧表示できるようにすると、正しいランキングが台無しになります。
答えがおそらく目の前にあることはわかっていますが、よくわかりません。平均結果に基づいて各名前のランキングを出力するにはどうすればよいですか?