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?
You can add a variable for this. For a group by
, I think it is better to do this using a subquery:
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.