mysql查询先排序再分组查询出来的数据不是每组最新的数据

mysql版本:5.7

sql如下:

SELECT b.student_id, b.create_time  from (SELECT a.student_id, a.create_time FROM t_cardiopulmonary a ORDER BY a.create_time DESC ) b GROUP BY b.student_id

结果:


student_id为 1的学生 最新时间是2018-05-04 09:22:57

子查询sql结果集:


竟然是第三条数据,查询资料得知可以在子查询临时表中添加limit要包含查询出所有数据

修改sql如下:

SELECT b.student_id, b.create_time from (SELECT * FROM t_cardiopulmonary a ORDER BY a.create_time DESC LIMIT 999) b GROUP BY b.student_id

结果:


OK,成功解决问题,还可以用另一个写法:

select v.student_id, v.create_time from t_cardiopulmonary v 
inner join (select student_id, max(create_time) 'create_time' from t_cardiopulmonary 
group by student_id) c on v.student_id = c.student_id and v.create_time = c.create_time


评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值