简体   繁体   English

如何在查询结果中添加排名或行号?

[英]How can I add rank or row number into query result?

I have below query which is returning result, but I need to add row number or rank.我有以下查询正在返回结果,但我需要添加行号或排名。 Working query is following工作查询如下

SELECT  user_id, CAST(SUM(total_score) / 100 AS DECIMAL(10,2)) AS points
FROM users_games 
GROUP BY user_id
HAVING points > 500 AND points < 5000
ORDER BY points DESC

I tried following for getting row number and rank我尝试关注获取行号和排名

SET @rank=0; 
SELECT @rank:=@rank+1, user_id, CAST(SUM(total_score) / 100 AS DECIMAL(10,2)) AS points
FROM users_games
GROUP BY user_id
HAVING points > 500 AND points < 5000
ORDER BY points DESC;
SELECT @rank;

In older versions of MySQL and MariaDB, you can use variables:在旧版本的 MySQL 和 MariaDB 中,您可以使用变量:

SELECT (@rn := @rn + 1), ug.*
FROM (SELECT  user_id, CAST(SUM(total_score) / 100 AS DECIMAL(10,2)) AS points
      FROM users_games 
      GROUP BY user_id
      HAVING points > 500 AND points < 5000
      ORDER BY points DESC
     ) ug CROSS JOIN
     (SELECT @rn := 0) params;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM