【发布时间】:2017-10-04 12:03:05
【问题描述】:
我在 BigQuery 中有一个 160GB 的数据库,表示上个月从应用发送的事件。每行都有(除其他外)日期字段、userId 字段和事件字段。
我需要做的是找出在某一天使用过该应用的唯一身份用户数量。例如,如果用户 X 在 2017 年 9 月 15 日使用了 3 次应用程序,则当天只计算一次,但如果他在 2017 年 9 月 15 日、2017 年 9 月 16 日和 2017 年 9 月 17 日都使用了该应用程序,在每一天(只计算一次)。
我尝试做的是按用户 ID 和日期对用户进行分组,然后分别计算每个日期的用户 ID 数,例如:
SELECT
userId,
DATE(date) AS date_conv
FROM
[TABLE]
WHERE
userId IS NOT NULL
GROUP BY
date_conv,
userId
ORDER BY
userId
但是,即使增加了计费层级,此查询也会返回“超出资源”,因此如果有更有效的方法会很棒。
【问题讨论】:
标签: sql google-bigquery