【发布时间】:2017-08-03 17:11:27
【问题描述】:
我正在为 SQL 查询而苦苦挣扎。
我要完成的任务是统计 5 天有多少用户使用该应用,4 天有多少用户等。
我想要一张这样的桌子:
days | user_count
---- | ---
5 | 2
4 | 2
2 | 1
1 | 1
我拥有的是一个包含事件、event_date 和 user_id 的日志文件。所以我设法查询的是:
SELECT
user_id,
COUNT(DISTINCT event_date) AS days
FROM
mytable
GROUP BY user_id
这是结果表。
user_id | days
------- | ----
a | 5
b | 5
c | 4
d | 4
e | 2
f | 1
但我需要一个如上所示的表格(天数,用户计数)
问题:如何通过 一个 查询获得结果?
我希望我能得到结果并按天再次分组。但这在一个查询中不起作用(我无法将 ORDER BY 用于累积列)。
我用的是 Google BigQuery 的 WebUI,临时表好像不太好做。所以我想组合两个查询,但我的 SQL 技能有限。阅读 UNION、WHERE IN 或子查询、相关查询并没有让我更进一步。
任何帮助表示赞赏:-)
【问题讨论】:
标签: sql group-by google-bigquery