Я новичок в BigQuery с Firebase, и я пытаюсь получить количество пользователей и групп сеансов по версиям приложения (device.operating_system_version).
До сих пор у меня работал этот код (но без группыby)
SELECT
COUNT(DISTINCT user_pseudo_id) AS all_users,
(
SELECT
COUNT(user_pseudo_id)
FROM
`xxxx.analytics_xxxx.events_20191105`
WHERE
event_name = 'session_start'
) AS session,
(
SELECT
COUNT(event_name) as totalScreen
FROM
`xxxx.analytics_xxxx.events_20191105`
WHERE
event_name = 'newScreen'
) AS screenView
FROM `xxxx.analytics_xxxx.events_20191105`
Результат в порядке:
Row | all_users | session | screenView
1 | 80 | 150 | 550
Но когда я пытаюсь сгруппировать по версии приложения, количество пользователей является правильным и разным для каждой версии приложения, кроме числасессий и screenViews всегда одинаковы для всех версий приложения. Код следующий:
SELECT
device.operating_system_version AS os_Version,
COUNT(DISTINCT user_pseudo_id) AS all_users,
(
SELECT
COUNT(user_pseudo_id)
FROM
`xxxx.analytics_xxxx.events_20191105`
WHERE
event_name = 'session_start'
) AS session,
(
SELECT
COUNT(event_name) as totalScreen
FROM
`xxxx.analytics_xxxx.events_20191105`
WHERE
event_name = 'newScreen'
) AS screenView
FROM `xxxx.analytics_xxxx.events_20191105`
GROUP BY os_Version
Результат:
Row | os_Version | all_users | session | screenView
1 | 9 | 14 | 150 | 550
2 | 6.0.1 | 4 | 150 | 550
3 | 8.0.0 | 9 | 150 | 550
4 | 7.0 | 3 | 150 | 550
...
Я не понимаю этого поведения. Это похоже на то, что «Group BY» был применен только к «пользователю», а не к подзапросам.
Спасибо