Я пытаюсь настроить пользователей на 7 дней и пользователей на 31 день в BigQuery (с Firebase), используя следующий запрос.Я хочу, чтобы для каждого дня он проверял предыдущие 31 день, а также 7 дней.Я застрял и получаю сообщение:
LEFT OUTER JOIN не может быть использован без условия, которое является равенством полей с обеих сторон объединения.
Запрос:
With events AS (
SELECT PARSE_DATE("%Y%m%d", event_date) as event_date, user_pseudo_id FROM `my_data_table.analytics_178206500.events_*`
Where _table_suffix NOT LIKE "i%" AND event_name = "user_engagement"
GROUP BY 1, 2
),
DAU AS (
SELECT event_date as date, COUNT(DISTINCT(user_pseudo_id)) AS dau
From events
GROUP BY 1
)
SELECT DAU.date, DAU.dau,
(
SELECT count(distinct(user_pseudo_id))
FROM events
WHERE events.event_date BETWEEN DATE_SUB(DAU.date, INTERVAL 29 DAY) and dau.date
) as mau,
(
SELECT count(distinct(user_pseudo_id))
FROM events
WHERE events.event_date BETWEEN DATE_SUB(DAU.date, INTERVAL 7 DAY) and dau.date
) as wau
FROM DAU
ORDER BY 1 DESC
Я могу получить часть DAU, но последние 7 дней пользователей (WAU) и последние 31 дней пользователей (MAU) не проходят.Я пытался CROSS JOIN DAU с событиями, но я получаю следующие результаты GraphResults
Любые указатели будут с благодарностью