【发布时间】:2021-07-15 09:22:34
【问题描述】:
我有下表 交易表
| USERID | TRANSACTION_DATE | Product |
|---|---|---|
| 111 | 2021-05-03 | A |
| 112 | 2021-07-04 | C |
| 111 | 2021-08-21 | A |
| 113 | 2021-07-01 | B |
| 114 | 2021-07-09 | A |
我想得到一个摘要,以便我可以获得每个客户的每个产品的 MIN(TRANSACTION_DATE)(基本上是每个客户开始购买每个产品的第一个日期),如下所示。
注意:并非所有客户都购买了所有产品
期望的输出:
| USERID | Product | FIRST_BOUGHT |
|---|---|---|
| 111 | A | 2021-05-01 |
| 111 | B | 2021-03-01 |
| 111 | D | 2021-11-07 |
| 112 | A | 2021-05-09 |
| 112 | C | 2021-06-01 |
到目前为止,我已经在下面尝试过,但它没有给出预期的结果。任何帮助将不胜感激。
SELECT USERID,
PRODUCT,
MIN(TRANSACTION_DATE) OVER(PARTITION BY USERID,PRODUCT ORDER BY TRANSACTION_DATE) AS FIRST_BOUGHT,
FIRST_VALUE(PRODUCT) OVER(PARTITION BY USERID,PRODUCT ORDER BY TRANSACTION_DATE) AS Product
FROM Table1
【问题讨论】:
标签: sql google-bigquery partitioning