提问人:Lasha Dolenjashvili 提问时间:11/21/2022 更新时间:3/30/2023 访问量:234
具有递归性质的 SQL 查询
SQL Query with Recursive Nature
问:
假设我有一个包含 2 列的表:PURCHASE_DATE 和 ACCOUNT_NUMBER:
PURCHASE_DATE | ACOUNT_NUMBER |
---|---|
2022-01-01 | 123 |
2022-01-01 | 233 |
2022-01-01 | 333 |
2022-01-02 | 433 |
2022-01-02 | 233 |
2022-01-02 | 333 |
2022-01-03 | 123 |
2022-01-03 | 233 |
2022-01-03 | 335 |
我想每天选择1个帐户向他发送促销短信。(例如,按ACCOUNT_NUMBER排序时的第一个帐户)。但是在第二天,如果第一个帐户是我前一天已经发送短信的帐户,我需要排除他/她并选择下一个帐户。在第三天,我应该排除最近 2 天内选择的 2 个帐户,依此类推。
期望输出:
PURCHASE_DATETIME | ACOUNT_NUMBER |
---|---|
2022-01-01 | 123 |
2022-01-02 | 233 |
2022-01-03 | 335 |
如您所见,在 2022-01-03 上,账户 123 和 233 被排除在外。
我必须在 Dremio 中解决这个问题,据我所知,我们只能创建视图,而不能创建临时表或递归 CTE。
如果可能的话,我需要自动执行此过程。你会如何处理这类问题?
答:
0赞
dacopan
3/30/2023
#1
在 dremio 中,您可以使用 CTE 创建表,也可以在其他查询中使用它,您不需要自动创建表,您可以使用查询 SQL 来同时完成这两项操作 参考: https://docs.dremio.com/software/sql-reference/sql-commands/with/
评论
sms_sent_log
sms_sent_log