如何获得;会议“开始”&引用;“用户”;及;“屏幕视图”;分组方式;应用程序版本?Firebase BigQuery SQL
我是Firebase BigQuery的初学者,我尝试通过应用程序版本(设备.操作系统版本)获取用户和会话组的数量 到目前为止,我一直在使用此代码(但没有GroupBy) 结果很好:如何获得;会议“开始”&引用;“用户”;及;“屏幕视图”;分组方式;应用程序版本?Firebase BigQuery SQL,firebase,google-bigquery,Firebase,Google Bigquery,我是Firebase BigQuery的初学者,我尝试通过应用程序版本(设备.操作系统版本)获取用户和会话组的数量 到目前为止,我一直在使用此代码(但没有GroupBy) 结果很好: Row | all_users | session | screenView 1 | 80 | 150 | 550 但当我尝试按应用程序版本分组时,每个应用程序版本的用户数是正确的和不同的,但所有应用程序版本的会话数和屏幕视图数始终相同。代码如下: SELECT device.op
Row | all_users | session | screenView
1 | 80 | 150 | 550
但当我尝试按应用程序版本分组时,每个应用程序版本的用户数是正确的和不同的,但所有应用程序版本的会话数和屏幕视图数始终相同。代码如下:
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
...
我不理解这种行为。这就像“groupby”只应用于“user”而不应用于子查询一样
谢谢这就像“分组依据”只应用于“用户”而不是子查询一样。
这正是发生的情况,子查询为每个os_版本的“组”返回相同的结果
我会像这样重写查询:
select
device.operating_system_version as os_Version,
count(distinct user_pseudo_id) as all_users,
count(case when event_name = 'session_start' then 1 else null end) as session,
count(case when event_name = 'newScreen' then 1 else null end) as screenView
from `xxxx.analytics_xxxx.events_20191105`
group by 1
这就像“分组依据”只应用于“用户”而不应用于子查询一样。
这正是发生的情况,子查询为每个os_版本的“组”返回相同的结果
我会像这样重写查询:
select
device.operating_system_version as os_Version,
count(distinct user_pseudo_id) as all_users,
count(case when event_name = 'session_start' then 1 else null end) as session,
count(case when event_name = 'newScreen' then 1 else null end) as screenView
from `xxxx.analytics_xxxx.events_20191105`
group by 1