Mysql排序獲取排名的實例代碼
更新時間:2018年05月29日 10:36:42 作者:weixin_40839342
這篇文章通過實例代碼給大家介紹了mysql排序獲取排名的相關知識,感興趣的朋友一起看看吧
代碼如下所示:
SELECT @i:=@i+1 rowNum, if(@total=t.s_score,@rank,@rank:=@i) rank,@total:=t.s_score, t.* from( select t1.* ,t2.s_score from student t1 LEFT JOIN score t2 on t1.s_id=t2.s_id and t2.c_id="01" ORDER BY t2.s_score desc )t,(select @i:=0,@rank:=0,@total:=null) s ; SELECT @i:=@i+1 rowNum, if(@total=t.s_score,@rank,@rank:=@rank+1) rank,@total:=t.s_score, t.* from( select t1.* ,t2.s_score from student t1 LEFT JOIN score t2 on t1.s_id=t2.s_id and t2.c_id="01" ORDER BY t2.s_score desc )t,(select @i:=0,@rank:=0,@total:=null) s ;
Mysql 獲取成績排序后的名次
其實就是輸出mysql的排序后的行號
RT:獲取單個用戶的成績在所有用戶成績中的排名
可以分兩步:
1、查出所有用戶和他們的成績排名
select id,maxScore,(@rowNum:=@rowNum+1) as rowNo from t_user, (select (@rowNum :=0) ) b order by t_user.maxScore desc
2、查出某個用戶在所有用戶成績中的排名
select u.rowNo from ( select id,(@rowNum:=@rowNum+1) as rowNo from t_user, (select (@rowNum :=0) ) b order by t_user.maxScore desc ) u where u.id="2015091810371700001";
總結
以上所述是小編給大家介紹的Mysql排序獲取排名,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
mysql如何分別按年/月/日/周分組統(tǒng)計數據詳解
我們在用Mysql抽取數據時候,經常需要按照天、周、月等不同的粒度對數據進行分組統(tǒng)計,下面這篇文章主要給大家介紹了關于mysql如何分別按年/月/日/周分組統(tǒng)計數據的相關資料,需要的朋友可以參考下2022-12-12
教你如何讓spark?sql寫mysql的時候支持update操作
spark提供了一個枚舉類,用來支撐對接數據源的操作模式,本文重點給大家介紹如何讓spark?sql寫mysql的時候支持update操作,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2022-02-02
淺談mysql中concat函數,mysql在字段前/后增加字符串
下面小編就為大家?guī)硪黄獪\談mysql中concat函數,mysql在字段前/后增加字符串。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)
這篇文章主要介紹了Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)問題解決方法,需要的朋友可以參考下2014-05-05

