Как определить пользователей, которые устанавливают и удаляют приложение - как использовать UNNEST в новой схеме - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу определить пользователей, которые устанавливают и удаляют приложение. На этот вопрос ранее уже отвечали: SQL-запрос для поиска пользователей, которые устанавливают и удаляют приложение в тот же день

Однако при этом используется старая схема, и я не уверен, как ее переделать, используя новую. Функция UNNEST с event_dim является самой большой проблемой, так как в новой схеме нет явной альтернативы этому.

#standardSQL

SELECT event_date,user_pseudo_id,event_name


FROM

`appDataFromFirebase.events_*`



WHERE event_name = "app_remove" OR event_name = "first_open"

Это дает мне всех пользователей, у которых есть app_remove или first_open. То, что я на самом деле хочу, это те пользователи, у которых есть и то, и другое, включая даты, когда произошло это событие. (отредактировано, чтобы прояснить, что мне нужно).

1 Ответ

0 голосов
/ 11 апреля 2019

Вы можете использовать group by, чтобы получить пользователей:

SELECT user_pseudo_id,
       MIN(CASE WHEN event_name = 'first_open' THEN event_date END) as app_remove_date,
       MAX(CASE WHEN event_name = 'app_remove' THEN event_date END) as app_remove_date
FROM `appDataFromFirebase.events_*`
WHERE event_name IN ('app_remove', 'first_open')
GROUP BY user_pseudo_id
HAVING COUNT(DISTINCT event_name) = 2;
...