【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