首页 > 解决方案 > 如何在 MYSQL 中使用 max(date)

问题描述

我在使用max(date)where 子句时遇到问题。

我的表中有重复数据,并且某些数据没有任何重复值,我需要从每个重复值中选择最新数据,每当我在 where 子句中使用 max(date) 时,我都会遇到“错误”无效功能”

sample table

id   user_id  name        date
1       1      Bob        2019-11-12 18:00:00
2       1      Alice      2019-11-12 16:15:15
3       2      Josh       2019-11-08 16:15:15
4       3      Dina       2019-11-09 16:15:15
5       4      Jena       2019-11-07 16:15:15

这是我的示例输出:


id   user_id  name        date
1       1      Bob        2019-11-12 18:00:00
3       2      Josh       2019-11-08 16:15:15
4       3      Dina       2019-11-09 16:15:15
5       4      Jena       2019-11-07 16:15:15

所以它只会有 4 个输出,因为 user_id1有一个重复的值我只需要从中选择最新的日期。

这是我的查询

SELECT name
FROM sample
GROUP BY user_id
WHERE date = max(date);

即使我使用 group by 和 order by,我仍然没有从每个重复值中获取最新日期。

但我有invalid function 任何帮助的错误将不胜感激。提前谢谢

标签: mysqldatabase

解决方案


您可以尝试以下方法:

SELECT name
FROM sample
GROUP BY user_id
WHERE date = (SELECT MAX(date) FROM sample)

推荐阅读