数据库查询之多组数据取每组数据时间最近的一条

多组数据取每组数据时间最近的一条

一、 示例(**获取每个组时间线最近的一条数据 **)
表:cms.consulation_complaint_reply
数据库查询之多组数据取每组数据时间最近的一条_第1张图片
ccrid为主键、reply_ccid为组id、create_datatime为时间
二、步骤
1.将数据先做排序处理,分组排序、时间线排倒序


SELECT ccrid,reply_ccid,create_datetime from cms.consulation_complaint_reply order by 
reply_ccid,create_datetime desc

结果是每组的数据时间倒叙排列
数据库查询之多组数据取每组数据时间最近的一条_第2张图片
2.取出每组的第一条数据(即为时间最近的一条数据)

select max(cc.ccrid) 最新数据的主键 from 		 
	(SELECT ccrid,reply_ccid,create_datetime from cms.consulation_complaint_reply 
	order by reply_ccid,create_datetime desc) cc
group by cc.reply_ccid

在这里插入图片描述
这里使用到了max()函数,获取分组数据中第一条数据;
拓展延申:min()函数为获取分组数据中最后一条数据;

你可能感兴趣的:(数据库查询常用技巧,数据库)