我的工作查询是:

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;

10-08 15:23