【发布时间】:2021-12-23 16:50:56
【问题描述】:
我试图找出一种方法来在 SQL 中查找一个事件是否在 N 天内发生了不同的事件
例如,如果我的数据如下所示:
User_ID Code Date
1122 A 01-01-2020
1122 A 02-01-2020
1122 A 02-01-2020
2233 A 04-01-2020
2233 A 04-01-2020
1122 B 04-01-2020
3344 A 07-01-2020
3344 B 07-01-2020
2233 A 08-01-2020
说N=2,意思是我需要找出事件B是否在2天内发生,每个用户的事件A,如果是这样,我需要过滤掉事件A
所以在我的数据中,第 1 天有一个事件 A,第 2 天有两个用户 1122 的事件 A,然后第 4 天有一个事件 B。 事件 B 发生在用户 1122 的第一个事件 A 的 3 天后,以及用户 1122 的两个事件 A 的 2 天后。所以这两个 A 事件应该被标记: (对于与A在同一天发生事件B的用户3344相同,因此也遵守2天)
User_ID Code Date B_within_2_days
1122 A 01-01-2020 NO
1122 A 02-01-2020 YES
1122 A 02-01-2020 YES
2233 A 04-01-2020 NO
2233 A 04-01-2020 NO
1122 B 04-01-2020 NO
3344 A 07-01-2020 YES
3344 B 07-01-2020 NO
2233 A 08-01-2020 NO
【问题讨论】:
-
标记垃圾邮件并不能帮助我们帮助您。标记您真正使用的RDBMS,并且仅该RDBMS。