bigQuery - 具有计算值的操作

时间:2016-01-20 09:05:16

标签: google-bigquery partitioning

我有一个带有两个分区条件的查询。 我想知道每天平均下载每个应用的次数。

FROM

因此查询在(avg (cnt_downloads) over (partition by ID)) as avg_dowl之前没有最后一行的情况下工作。而且我知道我可以通过简单地包含partition over来获得价值。

但是我的问题是我如何能够包含()子句的两个子结果的操作。 我曾经和[]以及{{1}}一起尝试过。总是存在错误,该字段不是原始数据库的一部分。

由于

1 个答案:

答案 0 :(得分:0)

不要害怕使用子查询。

SELECT date, ID,
             cnt_downloads,
             total_down1,
             total_appear,
             total_down1/total_appear AS avg_dowl
FROM
  (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,
   FROM [default.download_activity]
   WHERE date(TIMESTAMP) >= '2016-01-04'
     AND date(TIMESTAMP) <= '2016-01-20'
   GROUP BY 1,
            2
   )