我遇到了从几个分区每日表中获取平均值的问题。我们每天都有分区表。我想要一个SQL查询来计算按国家/地区分组的N天平均请求数。
所以这就是架构:
日期(字符串) 国家(字符串) req(整数)
到目前为止我所拥有的:
src='dist/app.bundle.js'
这当然可以工作1天,但是当我试用2天或更多天时,数据会出现偏差。我的逻辑中有什么问题?在这种情况下,AVG()函数如何工作?我是否也需要按日期分组?
所以我想要每天平均的thePartitionedTable_today和每日平均值thePartitionedTable_yesterday然后我想要他们的平均值的平均值,如果这是有道理的。因此,如果thePartitionedTable_today尼日利亚的平均每日平均值为2,而且尼日利亚的每日平均值为3,那么这两天的尼日利亚平均值应为2.5。我真的很喜欢你的时间!
答案 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
子查询还会为您提供每天每个国家/地区的平均请求数。