Большой запрос | Показывать максимальное значение в каждой строке на основе общего значения в другом столбце - PullRequest
0 голосов
/ 18 июня 2020

Я анализирую данные о покупках и смотрю ставки ребая по артикулам. Мои данные пока выглядят примерно так: enter image description here

Я пытаюсь получить максимальное значение из каждого столбца в каждую строку (на основе на адрес электронной почты). Примерно так: enter image description here

Есть идеи, как это сделать? Есть ли способ получить максимальное значение последних 3 столбцов на основе адреса электронной почты в каждой строке?

1 Ответ

2 голосов
/ 18 июня 2020

Ниже для BigQuery Standard 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    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...