首页 > 技术分享 > MySQL
收藏

MySQL查询当前排名

12/27 16:53
大潇博客 原创文章,转载请标明出处

本文讲述在mysql中,通过一条sql语句,查询排名信息。


假设有如下两张表

表1名为TableA,结构和数据如下:

排名数据表1.png

表2名为TableB,结构和数据如下:

排名数据表2.png


查询“user_id为 11208 的用户,在 2021年 6月考试中的总分排名”,sql语句为:

SELECT m.user_id,m.score_sum score,m.rownum FROM 

(SELECT t.uid, t.score_sum, @rownum := @rownum +1 AS rownum FROM 

(SELECT @rownum :=0) r, 

(SELECT a.user_id, SUM( a.score ) score_sum FROM TableA a JOIN TableB b ON a.type_id=b.type_id WHERE b.year=2021 AND b.month=6 GROUP BY a.user_id ORDER BY score_sum DESC,a.user_id ASC) t

AS m 

WHERE m.uid=11208;

上面sql中出现了@rownum

-- @rownum 为自定义会话变量

-- @rownum := 0 确定初始值

-- @rownum := @rownum +1 步长

( SELECT @rownum := 0 ) r 相当于创建了别名为:r 的新表,其表的列为@rownum,数值为0

打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311