gpt4 book ai didi

MySQL:从特定的 event_time 中选择事件时间早于 1 周的行

转载 作者:行者123 更新时间:2023-11-29 10:39:27 24 4
gpt4 key购买 nike

我有一个包含以下数据的表:

    ID        Event_time               Event_type
0 2016-05-11 17:26:03.0 1
0 2017-06-13 19:29:03.0 2
0 2017-06-13 13:56:05.0 3
0 2016-05-13 17:20:37.0 1
1 2016-09-20 16:20:03.0 0
1 2016-11-11 20:12:03.0 2
2 2016-11-15 17:26:03.0 1
2 2016-12-02 15:06:00.0 2
2 2016-12-02 15:00:03.0 0

每个 ID 都有 Event_type = 2。现在,我只想分别为每个 ID 选择比 Event_type = 2 日期早 1 周或更短的数据。

我尝试了这个查询:

SELECT*FROM my_table WHERE EVENT_TIME IN (SELECT DATE_SUB(EVENT_TIME, INTERVAL 7 DAY) FROM my_table where EVENT_TYPE='2')

但它没有给我想要的输出,应该是:

ID        Event_time               Event_type
0 2017-06-13 19:29:03.0 2
0 2017-06-13 13:56:05.0 3
1 2016-11-11 20:12:03.0 2
2 2016-12-02 15:06:00.0 2
2 2016-12-02 15:00:03.0 0

我认为 DATE_SUB 函数无法正常工作,但我不知道如何修复它。

编辑:Event_type = 2 的日期应该出现在输出中。

最佳答案

您提到“分别针对每个 ID”,但您没有在查询中检查这一点。

尝试这样:

SELECT *
FROM my_table WHERE EVENT_TIME > (
SELECT DATE_SUB(MAX(EVENT_TIME), INTERVAL 7 DAY)
FROM my_table mt /*note that I used a different alias here for the table...*/
WHERE EVENT_TYPE='2'
AND mt.ID = my_table.ID /*...so that I can distinguish between the ID in the subquery and the outer query*/
)

关于MySQL:从特定的 event_time 中选择事件时间早于 1 周的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45792029/

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