SQL BigQuery 在多列上使用分区依据

SQL BigQuery Using Partition By on multiple columns

我有以下 table 交易 Table

用户名 TRANSACTION_DATE 产品
111 2021-05-03 一个
112 2021-07-04 C
111 2021-08-21 一个
113 2021-07-01 B
114 2021-07-09 一个

我想得到一个摘要,这样我就可以得到每个客户的每个产品的 MIN(TRANSACTION_DATE)(基本上是每个客户开始购买每个产品的第一个日期),如下所示。

注意:并非所有客户都购买了所有产品

期望的输出:

用户名 产品 FIRST_BOUGHT
111 一个 2021-05-01
111 B 2021-03-01
111 D 2021-11-07
112 一个 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

试试这个:

select userid, product, min(transaction_date) as first_bought
FROM Table1
GROUP BY userid, product