本文实例讲述了mysql使用group by分组实现取前n条记录的方法。分享给大家供大家参考,具体如下:
mysql中group by分组取前n条记录实现
mysql分组,取记录
group by之后如何取每组的前两位下面我来讲述mysql中group by分组取前n条记录实现方法。
这是测试表(也不知道怎么想的,当时表名直接敲了个aa,汗~~~~):
结果:
方法一:
拆开分析:
<!--[if !supportlists]-->1、 <!--[endif]-->left join aa b on a.clsno=b.clsno and a.score<b.score
同一个班级(每个班级四个人),分数比当前学生高的记录,那就意味这成绩垫底的学生,将会产生三条记录
<!--[if !supportlists]-->2、 <!--[endif]-->group by a.id,a.sname,a.clsno,a.score having count(b.id)<2
a.id,a.sname,a.clsno,a.score可以代表一个学生(以学生分组),如果count(b.id)<2(成绩超过你的人不能多于2个),那就只剩第一第二了。
方法二:
方法三:
更多关于mysql相关内容感兴趣的读者可查看本站专题:《mysql日志操作技巧大全》、《mysql事务操作技巧汇总》、《mysql存储过程技巧大全》、《mysql数据库锁相关技巧汇总》及《mysql常用函数大汇总》
希望本文所述对大家mysql数据库计有所帮助。
如对本文有疑问, 点击进行留言回复!!
MySQL-关系代数-并、交、差、等值连接、自然连接、左连接。。。
【MySQL牛客】10.获取所有非manager的员工emp_no
网友评论