【发布时间】:2021-06-30 10:52:04
【问题描述】:
我有一个数据库表:
User_id | User Name | Join_date | Activity_date |
1 abc 01/01/2021 02-01-2021
2 jay 01/01/2021 03-01-2021
2 jay 01/01/2021 04-01-2021
1 abc 01/01/2021 09-01-2021
1 abc 01/01/2021 16-01-2021
2 jay 01/01/2021 05-01-2021
3 xyz 03/03/2021 12-03-2021
3 xyz 03/03/2021 30-03-2021
2 jay 01/01/2021 26-01-2021
我想根据他们的Activity_date 对用户进行分桶,例如每隔一天进行活动的用户进入 table1,每周进行活动的用户(间隔 6-7 天)进入 table2,所有其他用户进入表3。
output 是这样的:
temporary_table1:(隔天做一次活动的人继续)
User_id | User Name | Join_date | Activity_date |
2 jay 01/01/2021 03-01-2021
2 jay 01/01/2021 04-01-2021
2 jay 01/01/2021 05-01-2021
temporary_table_2:(从第一个Activity_date开始每6-7天做一次活动的人)
User_id | User Name | Join_date | Activity_date |
1 abc 01/01/2021 02-01-2021
1 abc 01/01/2021 09-01-2021
1 abc 01/01/2021 15-01-2021
temporary_table_3:(这里加上user_id =2,因为从这个用户最近的活动到最近的活动有超过7天的差距)
User_id | User Name | Join_date | Activity_date |
3 xyz 03/03/2021 12-03-2021
3 xyz 03/03/2021 30-03-2021
2 jay 01/01/2021 26-01-2021
如何在 SQL (Redshift) 中实现这一点?
【问题讨论】:
-
我删除了标签 [mysql] 和 [sql-server] 因为它们有冲突,并添加了 Amazon Redshift,正如您所说的那样,这是您真正使用的在结束语中。请确保在发布问题时正确标记。谢谢。
-
非常感谢您的建议和更新,我以后真的会更正它。
标签: sql group-by amazon-redshift