mysql实现先排序再分组的方式

更新时间:2023-07-14 22:00:48 阅读: 评论:0

治疗胆结石的偏方mysql实现先排序再分组的⽅式先排序再分组"与分组取前N条实则意思相同
创建⼀个表格 table
最新放假通知抗疫祝福语这⾥是⼀张成绩表,包含:姓名、班级、分数
id name class score 1a c167尊前拟把归期说
2b c155
3c c167
4d c165
5e c280
6f c265
7g c277
8h c273
9i c373 10j c368 11k c375 12l c381 13m c488 14n c490 15o c474 16p c477需要展⽰结果:找出每个班级的前两名,并由⾼到低排序
id name class score 1a c167 2b c167 3c c280 4d c277 5e c381 6f c375 7g c490 8h c488⽅法⼀:
SELECT a.id,a.name,a.clsss,a.score FROM table a
LEFT JOIN table b ON a.class=b.class AND a.score<b.score
group by a.id,a.name,a.class,a.score
含糊
having count(b.id)<2
ORDER BY a.class,a.score desc
拆开分析:
LEFT JOIN table b ON a.class=b.class AND a.score<b.score
苹果浏览器怎么收藏网页同⼀个班级(每个班级四个⼈),分数⽐当前学⽣⾼的记录,那就意味这成绩垫底的学⽣,将会产⽣三条记录group by a.id,a.name,a.class,a.score having count(b.id)<2
a.id,a.name,a.class,a.score可以代表⼀个学⽣(以学⽣分组),如果count(
b.id)<2(成绩超过你的⼈不能多于2个),那就只剩第⼀第⼆了。
⽅法⼆:
SELECT*FROM table a WHERE
(SELECT COUNT(*)FROM table WHERE class=a.class and score>a.score)<2
ORDER BY a.class,a.score DESC;
取每⼀条记录,判断同⼀个班级,⼤于当前成绩的同学是不是⼩于2个⼈。定性实验
字谜大全及答案100个个⼈感觉,第⼆条⽐较好

本文发布于:2023-07-14 22:00:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1096784.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:班级   分组   成绩   通知   意味   姓名   网页
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图