mysql 分组后取每组最新数据

  • 统计业务情况下,需要分组取最新,下面记录两种mysql写法

方式一:使用 MAX() 函数来实现该功能

SELECT* 
FROMd_switch_heart 
WHEREcreate_time IN ( SELECT MAX( create_time ) FROM d_switch_heart GROUP BY device_no ) 
ORDER BYdevice_no;

方式二:和方式一逻辑基本一致,只是将IN查询替换成了连接查询,实测百万级数据量相较于方式一提升50%,推荐使用此种方式

SELECTt1.* 
FROMd_switch_heart t1
INNER JOIN ( SELECT MAX( create_time ) AS create_time FROM d_switch_heart GROUP BY device_no ) t2 ON t1.create_time = t2.create_time;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部