在此日期范围内(从2018年12月18日到2018年12月21日),我在Firebase仪表板上有1,512位活跃用户。
我执行了此查询,并得到了以下内容:
SELECT
COUNT(DISTINCT user_pseudo_id ) as active_user_count
FROM
-- PLEASE REPLACE WITH YOUR TABLE NAME.
`xxxxxx-xxxxx.analytics_000000000.events_*`
WHERE
event_name = 'user_engagement'
AND event_timestamp >
UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 200 DAY))
-- PLEASE REPLACE WITH YOUR DESIRED DATE RANGE.
AND _TABLE_SUFFIX BETWEEN '20181218' AND '20181221'
我获得了1326个活跃用户,这些用户与我的Firebase仪表盘相比有很大的差距。
但是当我包含event_date时,我似乎得到了更准确的计数,如下所示:
SELECT
SUM(active_user_count)
FROM(
SELECT
COUNT(DISTINCT user_pseudo_id ) as active_user_count,
event_date
FROM
-- PLEASE REPLACE WITH YOUR TABLE NAME.
`xxxxxxx-xxxxxx.analytics_xxxx.events_*`
WHERE
event_name = 'user_engagement'
-- Pick events in the last N = 20 days.
AND event_timestamp >
UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 200 DAY))
-- PLEASE REPLACE WITH YOUR DESIRED DATE RANGE.
AND _TABLE_SUFFIX BETWEEN '20181218' AND '20181221'
GROUP BY event_date)
我的用户数量是1497。我不明白为什么要按日期和总和分组以获得更准确的数字。
第一个查询应该给我和第二个查询相同的电话号码吗?
谢谢
答案 0 :(得分:1)
我不明白为什么我要按日期和总和分组以获得更准确的数字。
第一个查询应该给我与第二个查询相同的电话号码吗?
简短的答案是-不,不应该!
第一个查询的作用是-计算整个期间内不同用户/帐户的数量。因此,如果同一用户/帐户在超过一天的时间内处于活动状态-该用户/帐户将仅被计数一次!
第二个查询的工作方式大相径庭-它首先计算每天的活动用户-因此每天将分别对同一用户(在上面的示例中)进行计数-因此,当最终将所有这些每日计数相加后,用户被计数的次数是该用户活跃状态的次数-差异
希望这有助于您进行进一步的故障排除
同时,我会推测Firebase仪表板中活动用户的定义-好像他们使用第二个查询(相对于第一个查询)的跟随逻辑-但这是我的猜测