[英]Add ranking to joined tables in query
My working query is: 我的工作查询是:
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
with this compound all results for user id ( liige_id) from table "tulemus", How can I add the ranking as well for the table of results? 将此化合物与“ tulemus”表中用户ID(liige_id)的所有结果一起使用时,如何为结果表添加排名?
You can add a variable for this. 您可以为此添加一个变量。 For a
group by
, I think it is better to do this using a subquery: 对于
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;
select *, @rank := @rank + 1 as rank
from
(
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
) tmp
CROSS JOIN (select @rank := 0) r
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.