【发布时间】:2020-12-29 13:41:25
【问题描述】:
sample_input_table
user name action date collection
1 aaa view 2020-09-03 {id:"888"}
1 aaa view 2020-09-02 {id:"999"}
2 bbb view 2020-09-02 {id:"555"}
3 ccc view 2020-08-28 {id:"777"}
4 ddd view 2020-08-25 {id:"666"}
1 aaa purchase 2020-09-09 {operation:"purchase"}
我有一个包含大量行数的表,该表如上所示。
问题
- 我想打印具有
purchase操作的行并且 - 同时,执行
purchase的用户必须有view操作的行 - 同时,
view操作将在 purchase_date(2020-09-09) 和 purchase_date - 7days(2020-09-02) 的日期范围内。 - 最后,我想要一行包含
purchase操作,我需要一个新列collection_1。 - 这个
collection_1列包含collection值,我们将从viewrows 中获取它,它具有min(date)
我想在一个sql查询中实现这5点
sample_output
user name action date collection collection_1
1 aaa purchase 2020-09-09 {operation:"purchase"} {id:"999"}
如果我们看到来自样本输入的样本输出
- 我们的最终结果只有 purchase_events
- purchased_user 有一行
view操作 - 并且
view在2020-09-09和2020-09-02(购买日期,购买日期 - 7 天)的时间范围内存在 - 我们有新列
collection_1,我们从view行中获取值,该行具有min(date)
谁能为此提出一些解决方案?
【问题讨论】:
标签: sql amazon-web-services subquery presto amazon-athena