在BigQuery中,我使用以下查询来获取每日活动用户的数量:
`
#legacySQL
SELECT
user_dim.app_info.app_platform as appPlatform,
event_dim.date as eventDate,
COUNT(DISTINCT user_dim.app_info.app_instance_id) as daily_active_users
FROM
TABLE_QUERY([table_name], 'table_id CONTAINS "app_events_"'),
TABLE_QUERY([table_name], 'table_id CONTAINS "app_events_"')
GROUP BY
appPlatform, eventDate
ORDER BY
appPlatform, eventDate`
查询具体日期的结果是534个Android用户和142个IOS用户。
但是Firebase显示,今天只有209名活跃的Android用户。这个数字是正确的,因为我可以将它与Appsee的数据进行比较。至于IOS,Firebase返回与我在BigQuery中的查询完全相同的数字。
我的查询有什么问题,我如何解决这个问题?
我也尝试用标准SQL编写查询:
#standardSQL
SELECT
event.date as date,
COUNT(DISTINCT user_dim.app_info.app_instance_id) AS daily_visitors
FROM `table.table.app_events_*`
CROSS JOIN UNNEST(event_dim) AS event
GROUP BY date
ORDER BY date DESC但是这个查询的结果和前面提到的结果完全一样:每天有534名用户,而Android是209名,IOS是正确的。
所以,我认为问题在于我对内部FB/BQ机制的误解。。
,请帮我找出问题的根源。
发布于 2017-07-20 12:43:41
进一步的查询返回两个平台的每日活动用户的正确数量:
#legacySQL
SELECT
event_dim.date as eventDate,
CASE WHEN user_dim.app_info.app_platform = 'IOS' AND EXACT_COUNT_DISTINCT(user_dim.app_info.app_instance_id) !=0 THEN INTEGER(EXACT_COUNT_DISTINCT(user_dim.app_info.app_instance_id))
ELSE 0
END as IOS_dau,
CASE WHEN user_dim.app_info.app_platform = 'ANDROID' AND EXACT_COUNT_DISTINCT(user_dim.app_info.app_instance_id) !=0 THEN INTEGER(EXACT_COUNT_DISTINCT(user_dim.app_info.app_instance_id))
ELSE 0
END as ANDROID_dau,
FROM
TABLE_QUERY([table:table_IOS], 'table_id CONTAINS "app_events_"'),
TABLE_QUERY([table:table_ANDROID], 'table_id CONTAINS "app_events_"')
WHERE event_dim.name = 'user_engagement'
GROUP BY 1, user_dim.app_info.app_platform
ORDER BY 1 DESChttps://stackoverflow.com/questions/45165381
复制相似问题