0


mysql 分组后取每组最新数据

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

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

SELECT*FROM
    d_switch_heart 
WHERE
    create_time IN(SELECTMAX( create_time )FROM d_switch_heart GROUPBY device_no )ORDERBY
    device_no;

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

SELECT
    t1.*FROM
    d_switch_heart t1
INNERJOIN(SELECTMAX( create_time )AS create_time FROM d_switch_heart GROUPBY device_no ) t2 ON t1.create_time = t2.create_time;
标签: sql

本文转载自: https://blog.csdn.net/yang7oto/article/details/131509693
版权归原作者 Max-yang 所有, 如有侵权,请联系我们删除。

“mysql 分组后取每组最新数据”的评论:

还没有评论