Как получить дедуплированные конверсии для уникальных пользователей с 24-часовым окном - PullRequest
0 голосов
/ 29 марта 2019

Мне нужно получить дедуплицированные конверсии для каждого уникального пользователя.Правило здесь заключается в том, что мне нужен столбец, в котором я получаю только счет первого преобразования, сделанного за день.Таким образом, я могу инициировать 10 конверсий за 28.03.2009, но столбец «Дедупированные» будет рассчитывать только 1. 1. 1001 *

Это мои исходные данные в BigQuery:

Date    User_ID
3/3/19  1234
3/3/19  1234
3/3/19  1234
3/3/19  12
3/3/19  12
3/4/19  1234
3/4/19  1234
3/5/19  1

Я хочу, чтобы мой окончательный результат выглядел так:

Date     User_ID   Total_Conversions   Deduped
3/3/19   1234      3                   1
3/3/19   12        2                   1
3/5/19   1         1                   1
3/4/19   1234      2                   1

1 Ответ

1 голос
/ 29 марта 2019

Ниже для BigQuery Standard SQL

#standardSQL
SELECT day, user_id, 
  COUNT(1) total_conversions,
  COUNT(DISTINCT user_id) deduped
FROM `project.dataset.table`
GROUP BY day, user_id   

Если применить выше к образцу данных из вашего вопроса - результат будет

Row day     user_id total_conversions   deduped  
1   3/4/19  1234    2                   1    
2   3/5/19  1       1                   1    
3   3/3/19  1234    3                   1    
4   3/3/19  12      2                   1   

Примечание: проверьте мои комментарии, которые я оставил под вашим вопросом!

Как насчет того, если бы у нас не было столбца даты в окончательном выводе, что если бы в коде было создано дедуплицированное правило, в котором группировка будет основана на uder_id без 'day'колонка в окончательном выводе?

Ниже приведен пример

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '3/3/19' day, 1234 user_id UNION ALL
  SELECT '3/3/19', 1234 UNION ALL
  SELECT '3/3/19', 1234 UNION ALL
  SELECT '3/3/19', 12 UNION ALL
  SELECT '3/3/19', 12 UNION ALL
  SELECT '3/4/19', 1234 UNION ALL
  SELECT '3/4/19', 1234 UNION ALL
  SELECT '3/5/19', 1 
)
SELECT user_id, 
  COUNT(1) total_conversions,
  COUNT(DISTINCT day) deduped
FROM `project.dataset.table`
GROUP BY user_id   

с результатом

Row user_id total_conversions   deduped  
1   12      2                   1    
2   1       1                   1    
3   1234    5                   2    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...