MySQL实现分组查每组最新创建的一条数据

先上数据
MySQL实现分组查每组最新创建的一条数据_第1张图片

需求:
取每个分组下最新创建的一条数据
MySQL版本:
MySQL5.7.5之后版本
实现思路:
使用max函数结合分组关键字实现

select RE_STLG_EQ,max(sy_is) as creatime from eom_re_eqstatus_log where RE_STLG_SHIFT = 'THSO221119.0001'  group by RE_STLG_EQ

效果
MySQL实现分组查每组最新创建的一条数据_第2张图片
注意:
因为使用了group by分组关键字,所以无法直接查某个字段的数据,需要结合函数才能查询特定字段出来。
若需要查询其他字段的数据,需要与自身表进行联表查询

select log.* from 
(select RE_STLG_EQ,max(sy_is) as creatime from eom_re_eqstatus_log where RE_STLG_SHIFT = 'THSO221119.0001'  group by RE_STLG_EQ) as temp 
left join eom_re_eqstatus_log as log on log.RE_STLG_EQ = temp.RE_STLG_EQ and temp.creatime = log.sy_is ;

效果如下:
MySQL实现分组查每组最新创建的一条数据_第3张图片

你可能感兴趣的:(sql,数据库)