MYSQL:巧用临时变量做分组统计

题目: 一张测试成绩表(test_score_tbl)中包括班级(class), 姓名(name), 分数(score) 三个字段, 求用SQL文检索出每个班级的前三名。


答案: 按照班级(class), 分数(score)排序后,再利用临时变量筛选出前三名:

select @pre_class:=0, @rownum:=0;

select 
    class, name, score  
from 
   (SELECT class, score, name, 
           @rownum:= (case when @pre_class = class then  @rownum + 1 else 1 end) count, 
           @pre_class:=class  
      FROM test.test_score_tbl 
     order by class asc, score desc ) T 
where count < 4;








  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值