mysql中如何實現排名

mysql中實現排名的方法:使用demo函數,語法為【SELECT banji,avg(score) as AvgS FROM table_test GROUP BY banji ORDER BY AvgS ? DESC】。

mysql中如何實現排名

mysql中實現排名的方法:

可用Demo實現

注意里面的A,屬于嵌套查詢,所以排名會正確。

FROM ( ?????SELECT?A.*,@rank:=@rank+1?as?pm ?????FROM? ?????( ??????SELECT?banji,avg(score)?as?AvgS?FROM?table_test?GROUP?BY?banji??ORDER?BY?AvgS???DESC ?????)?A?,(SELECT?@rank:=0)?B )?M ORDER?BY?M.banji

如果里面沒有子查詢,使用下面的SQL,那么排序會出錯。出錯的取決于GROUP BY 是否有多于一條的分組。

SELECT?banji,avg(score)?as?AvgS?,@rank:=@rank+1?as?pm FROM?table_test?A,(SELECT?@rank:=0)?B GROUP?BY?banji ORDER?BY?AvgS???DESC

原因:@rank排名發生在GROUP BY 之前。GROUP BY 是對排名后的結果進行分組。如果想對分組后的結果進行排名,請使用子查詢。

更多相關免費學習推薦:mysql教程(視頻)

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享