Mysqlでクエリを実行して、ユーザーの全時間ランキングを取得しようとしています。今月のランキングについては、次のリクエストでなんとかやりました。
SELECT MAX(x.rank) AS rank
FROM (SELECT
t.id_user,
@rownum := @rownum + 1 AS rank
FROM screengame_points t
JOIN (SELECT @rownum := 0) r
WHERE month = $month
ORDER BY t.points DESC) x
WHERE x.id_user = 4
いつも私はすべてのポイントの合計を計算する必要があるので、私は試しました:
SELECT MAX(x.rank) AS rank
FROM (SELECT
t.id_user,
@rownum := @rownum + 1 AS rank
FROM screengame_points t
JOIN (SELECT @rownum := 0) r
GROUP BY id_user
ORDER BY sum(t.points) DESC) x
WHERE x.id_user = 4
(「groupbyid_user」と「sum(t.points)」に注意してください)。
しかし、それは機能していません。2回目のリクエストでのランキングの結果は、1か月でスコアが最も高いものから最も低いものまでだと思います。それは、すべての月のすべてのポイントの合計ではありません。
どうすればいいですか?