按照各科成绩排序 按照总成绩排序

按各科成绩进行排序,并显示排名

set @rank=0;
select test.score.*,test.student.S_name,(@rank:=@rank+1)排名
from test.score,test.student
where test.score.s_no=test.student.s_no
order by test.score.s_score

查询学生的总成绩并进行排名

@rank := @rank + 1不能和group by 一起使用

解决办法: 将分组计算的结果作为一个虚拟表存在

正确写法:

set @rank=0;
select a.*, (@rank:=@rank+1)排名
from (select test.score.s_no,test.student.s_name,sum(test.score.s_score)total
from test.score,test.student,test.course
where test.score.s_no=test.student.s_no
group by test.score.s_no
order by total desc) as A
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值