MySQL中實現Oracle里面 rank()over ( PARTITION BY ORDER BY) 分類分組功能


 各班級學生成績測試表 select * from TMP_A; 

 

 

實現目的: 按照班級分類后按照分數倒序排序

   采用MySQL變量簡單實現,SQL如下:

SELECT  a.stu_id,a.point,
IF( @className = a.class_name,@rank := @rank + 1,@rank :=1 ) AS rank,
(@className := a.class_name) class_name
          FROM TMP_A   a,  ( select @rank :=0,@className := NULL ) b
ORDER BY a.class_name, a.point DESC ;

 

最終展示結果如下:

http://blog.csdn.net/gzt19881123/article/details/50503843


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM