我的工作查询是:
SELECT tulemus.liige_id, liige_v.liige_id, liige_v.Eesnimi, liige_v.Perekonnanimi, punktid, SUM(punktid) AS punktidkokku FROM tulemus
INNER JOIN liige_v on tulemus.liige_id = liige_v.liige_id
GROUP BY tulemus.liige_id
order by punktidkokku desc
使用此化合物,表“ tulemus”中用户ID(liige_id)的所有结果,
如何为结果表添加排名?
最佳答案
您可以为此添加一个变量。对于group by
,我认为最好使用子查询来做到这一点:
SELECT tv.*,
(@rn := @rn + 1) as ranking
FROM (SELECT tulemus.liige_id, liige_v.Eesnimi,
liige_v.Perekonnanimi, punktid, SUM(punktid) AS punktidkokku
FROM tulemus INNER JOIN
liige_v
ON tulemus.liige_id = liige_v.liige_id
GROUP BY tulemus.liige_id
) tv CROSS JOIN
(SELECT @rn := 0) vars
ORDER BY punktidkokku desc;