大查询|根据另一列中的共享值显示每行中的最大值

js5cn81o  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(286)

我正在分析采购数据,并查看按sku列出的再购买率。到目前为止,我的数据是这样的:

我要做的是从每一列中得到每一行的最大值(基于电子邮件地址)。像这样:

有什么办法吗?有没有一种方法可以根据电子邮件地址将最后3列的最大值放入每一行?

i2byvkas

i2byvkas1#

下面是bigquery标准sql


# standardSQL

SELECT email, first_item_purchased, 
  MAX(purchases_within_90_days) OVER(PARTITION BY email) AS purchases_within_90_days, 
  MAX(purchases_within_180_days) OVER(PARTITION BY email) AS purchases_within_180_days, 
  MAX(purchases_within_270_days) OVER(PARTITION BY email) AS purchases_within_270_days
FROM `project.dataset.table`

如果要应用到问题中的样本数据-输出是

Row email       first_item_purchased    purchases_within_90_days    purchases_within_180_days   purchases_within_270_days    
1   abc@gmail   null                    1                           1                           2    
2   abc@gmail   product_1               1                           1                           2    
3   abc@gmail   product_2               1                           1                           2    
4   def@gmail   null                    0                           2                           3    
5   def@gmail   product_1               0                           2                           3    
6   def@gmail   product_2               0                           2                           3

相关问题