【发布时间】:2016-04-26 00:56:12
【问题描述】:
我有一个带有两个按子句分区的查询。 我想知道每个应用在一天内平均被下载了多少次。
SELECT date(timestamp) as date, ID, count(*) as cnt_downloads,
sum(cnt_downloads) over (partition by ID) as total_downl,
count(*) over (partition by ID) as total_appear,
(sum(cnt_downloads) over (partition by ID)) / (count(*) over (partition by ID)) as avg_dowl
FROM [default.download_activity]
where date(timestamp) >= '2016-01-04' and date(timestamp) <= '2016-01-20'
group by date,two_hour, ID
所以查询在没有FROM 之前的最后一行的情况下工作。而且我知道我可以通过简单地包含 (avg (cnt_downloads) over (partition by ID)) as avg_dowl 来获得价值。
但是我的问题是如何包含partition over 子句的两个子结果的操作。
我尝试了使用和不使用() 以及[]。总是有这个字段不是原始数据库的一部分的错误。
谢谢
【问题讨论】:
-
您的费率很低。对 SO 很重要,您必须使用已发布答案左侧、投票下方的勾号来标记已接受的答案。这将提高您的费率。通过访问此链接了解其工作原理:meta.stackoverflow.com/questions/5234/…
标签: google-bigquery partitioning