【sql:練習題16】查詢學生的總成績,並進行排名


題目:查詢學生的總成績,並進行排名,總分重復時不保留名次空缺

分析:查詢學生的總成績 並進行排序 寫這個sql 簡單,直接按照學生student分組  然后sum(成績 score)

SELECT studentid,SUM(score) AS a FROM student_score GROUP BY studentid ORDER BY a DESC

但是這樣實現了排序 ,但是怎么給個序號rank 來表示排名吶?

於是就引用變量

SET @crank =0;
SELECT b.studentid, b.a, @crank := @crank +1 AS rank FROM
 (SELECT studentid,SUM(score) AS a FROM student_score GROUP BY studentid ORDER BY a DESC)b ;

 

 

這里有用到變量:SET @crank =0;

我百度了下sql變量: 之前沒接觸過

自定義變量: 申明變量:SET @crank =0對變量進行賦值:@crank := @crank +1   ,賦值操作符   =或:=   使用:查找,比較  運算等  ,      作用域:針對於當前會話(連接)有效,作用域同於會話變量

 

 


免責聲明!

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



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