Выберите уникальных пользователей, которые играли в игру не менее 2 раз в неделю в течение 30 дней. (SQL / BigQuery) - PullRequest
0 голосов
/ 13 июля 2020

У меня есть данные о пользователях, играющих в несколько игр в течение 6 месяцев

У меня есть имя таблицы: App_Click Имена столбцов: - user_id , date (дата, когда пользователь щелкнул игру), имя_приложения , App_click (Общее количество кликов каждым пользователем)

если запись существует, чем пользователь щелкнул приложение (т.е. играл)

Вопрос: Я ищу для уникальных пользователей, которые играют в игру AB C каждую неделю не менее 2 раз в 30 дней или ежеквартально

Ищущее решение, например: Всего пользователей, которые играли в AB C: 100 (пользователи, которые играли другие игры тоже) Всего пользователей, которые играли только в AB C: 30 (только пользователи, которые играли только в AB C) Всего пользователей, которые играли в AB C и другие игры: 70 (пользователи, которые играют в другие игры с AB C)

1 Ответ

0 голосов
/ 13 июля 2020

Вы можете использовать два уровня агрегирования:

select countif(num_abc > 0) as num_abc_users,
       countif(num_abc > 0 and num_other = 0) as num_abc_only,
       countif(num_abc > 0 and num_other > 0) as num_abc_plus_other 
from (select user_id, countif(app_name = 'ABC') as num_abc, countif(app_name <> 'ABC') then num_other
      from t
      group by user_id
     ) t;

Подзапрос суммирует для каждого пользователя. Затем внешний модуль объединяет эти результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...