BigQuery:计算每日分区表中的平均值

时间:2018-02-15 20:28:31

标签: sql google-bigquery

我遇到了从几个分区每日表中获取平均值的问题。我们每天都有分区表。我想要一个SQL查询来计算按国家/地区分组的N天平均请求数。

所以这就是架构:

日期(字符串) 国家(字符串) req(整数)

到目前为止我所拥有的:

src='dist/app.bundle.js'

这当然可以工作1天,但是当我试用2天或更多天时,数据会出现偏差。我的逻辑中有什么问题?在这种情况下,AVG()函数如何工作?我是否也需要按日期分组?

所以我想要每天平均的thePartitionedTable_today和每日平均值thePartitionedTable_yesterday然后我想要他们的平均值的平均值,如果这是有道理的。因此,如果thePartitionedTable_today尼日利亚的平均每日平均值为2,而且尼日利亚的每日平均值为3,那么这两天的尼日利亚平均值应为2.5。我真的很喜欢你的时间!

1 个答案:

答案 0 :(得分:2)

使用标准SQL:

with avg_byday AS (
  SELECT
    country,
    AVG(req) AS req_avg
  FROM
    `thePartitionedTable_*`
  GROUP BY
    _TABLE_SUFFIX,
    country)
SELECT
  country,
  AVG(req_avg)
FROM
  avg_byday
GROUP BY
  country

子查询还会为您提供每天每个国家/地区的平均请求数。