gpt4 book ai didi

mysql - SQL复杂分组按字段和时间

转载 作者:行者123 更新时间:2023-11-29 05:58:46 25 4
gpt4 key购买 nike

我有这张表:

id  |  game_id | value | create_time
-------------------------------------
1 1 100 1.1.2017
2 1 200 1.2.2017
3 2 34 1.1.2017
4 3 200 1.1.2017
5 1 100 1.3.2107

我想获取每个 game_id 的所有最后记录

5        1        100    1.3.2017
3 2 34 1.1.2017
4 3 200 1.1.2017

我如何使用 SQL (MySql) 做到这一点?

最佳答案

这只需要按 game_id 进行简单聚合即可找到最新的创建日期。但是由于您将日期存储为文本,我们需要先使用 STR_TO_DATE 将它们转换为真正的日期。

SELECT t1.*
FROM yourTable t1
INNER JOIN
(
SELECT game_id, MAX(STR_TO_DATE(create_time, '%m.%d.%Y')) AS max_create_time
FROM yourTable
GROUP BY game_id
) t2
ON t1.game_id = t2.game_id AND
STR_TO_DATE(t1.create_time, '%m.%d.%Y') = t2.max_create_time;

请注意,我假设您的日期格式为 month.day.year。如果您真的使用 day.month.year,则必须稍微更改 STR_TO_DATE 中的格式掩码。

一般来说,请不要将日期存储为文本。从上面的查询可以看出,它会让你的生活变得更加复杂。

关于mysql - SQL复杂分组按字段和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46933593/

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