gpt4 book ai didi

php - MySQL 每个用户一行取决于 maxDate 或 maxId

转载 作者:行者123 更新时间:2023-11-29 02:53:49 26 4
gpt4 key购买 nike

我在 MYSQL 中有一个名为 enrollments 的表,其中包含以下字段:id、user、estimated_date。

本例中的值是:

id, user, estimated_date
1, 1, 2015-10-10
2, 1, 2015-10-10
3, 2, 2015-10-20
4, 2, 2015-10-10

我想为每个用户选择一行:具有最大(估计日期)的那一行。但如果 estimated_date 相等,则必须选择具有 max(id) 的日期。换句话说……按估计日期和 ID(按此顺序)排序的分组依据。

输出应该是:

2, 1, 2015-10-10
3, 2, 2015-10-20

我现在有这段代码:

    SELECT * from enrollments m 
INNER JOIN
(SELECT user,
max(estimated_date) AS maxdate
FROM enrollments
GROUP BY user
) x ON m.user = x.user
AND m.estimated_date = x.maxdate

你能帮帮我吗?我一直在搜索,但没有找到适合这种情况的任何东西......谢谢!

最佳答案

您不需要 INNER JOIN,只需 ORDER by estimated_date DESC, id DESC 就足够了。这是您的查询:

Select * FROM (
SELECT
DISTINCT `id`, `user`, `estimated_date`
FROM
enrollments

ORDER by estimated_date DESC, id DESC

) as X
GROUP BY user

这里有完整的 fiddle :http://sqlfiddle.com/#!9/31799/3

关于php - MySQL 每个用户一行取决于 maxDate 或 maxId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32785274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com