1,先讲一下需求,数据库中有相同的数据,只取最新插入的一条数据
目前只有这一种方法,还请大神多多指点其他的方法。。。。
#可行的方法
SELECT des NAME, VALUE,date FROM t_dws_base_statistics WHERE NAME = "RKPT-JNQ-ZDGZRYFB" AND date IN ( SELECT max(date) FROM t_dws_base_statistics GROUP BY `des` );
2,这点就比较坑,
分组后,确实取的第一条,但是!!!!排序之后再分组就不取第一条!!!!
#不可行的方法
SELECT * FROM ( SELECT * FROM `t_dws_base_statistics` WHERE NAME = 'RKPT-JNQ-ZDGZRYFB' ORDER BY date ) A GROUP BY A.des
还在网上看到了一种拼接的方法,但是不太符合我的需求,一并整理
1.查询出分组的所有按时间降序的记录id并拼接
--查询出分组的所有按时间降序的记录id并拼接 select group_concat(id order by `time` desc) from user_position group by userId
2.查询每个分组中时间最新的那条记录的id
--查询每个分组中时间最新的那条记录的id select SUBSTRING_INDEX(group_concat(id order by `time` desc),',',1) from user_position group by userId
下面有怎么用拼接函数的一篇博客,不会用group_concat的可以浏览一下:
https://baijiahao.baidu.com/s?id=1595349117525189591&wfr=spider&for=pc