mysql根据某个字段分组根据更新时间获取最新的记录

Posted 青山不碍白云飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql根据某个字段分组根据更新时间获取最新的记录相关的知识,希望对你有一定的参考价值。

我现在有一种统计表,要根据一个字段分组然后根据更新时间,每个分组获取最新的一条记录。命名感觉挺简单的一个需求,然而没什么思路,当然是问度娘了。

度娘的答案很统一,然而都不管用,都是报错的,不知道是不是因为mysql5.7的原因,不过我记得group by也是不能查出整条记录的,为什么百度上都可以,百思不得解!

从网上找个例子:

根据USER_ID分组,每个获取 last_updated_date最新的一条记录。

SELECT ID,USER_ID,problems,last_updated_date  FROM  (select * from t_iov_help_feedback  order by USER_ID, LAST_UPDATED_DATE DESC) b GROUP BY b.USER_ID; 

很明显,这样在我的sql里面会报错。

所以我用了关联查询 on后跟了两个条件

select * from (select USER_ID,MAX(last_updated_date) group by USER_ID) as temp left join t_iov_help_feedback  as t on temp.USER_ID=t.USER_ID and temp.last_updated_date=t.last_updated_date;

这样就能查出来了。先写这么多,以后有时间了再仔细研究论证。

 

以上是关于mysql根据某个字段分组根据更新时间获取最新的记录的主要内容,如果未能解决你的问题,请参考以下文章

parttion by ~~~针对某个字段或多个字段重复,数据只取前n条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录......

mysql关联表分组查询多条数据

mysql根据某个字段内容排序

MySQL使用用户变量更新分组排序

es根据一个字段分组聚合另一个字段进行排序

mysql如何根据一列值更新另一列的值?