【发布时间】:2019-02-07 20:50:10
【问题描述】:
在 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。我不明白为什么如果我按日期分组并求和,我会得到一个更准确的数字。
第一个查询应该得到与第二个查询相同的号码吗?
谢谢,
【问题讨论】: