我有以下表结构:
来源年份国家/地区编号平均值 --- --- --- --- ---
abc 2016 us 30 15
abc 2017 us 10 20
pqr 2016 us 50 40
pqr 2017 ru 12 26
...
每个source
中可以有多个来源和多个国家/地区。
我希望输出形式为:
year country avg
--- --- ---
2016年我们30.625
2017我们20
2017 ru 26
其中avg被计算为Σ(numObserved
* average
)/Σ(numObserved
),用于任何给定的year
和country
avg(average)
上的group by year, country
不起作用,因为year = 2016
和country = us
的平均值为15,40(即27.5)。
答案 0 :(得分:1)
你只需要自己推动自己的"加权平均而不是依赖内置的avg
函数:
SELECT
country,
year,
SUM(numObserved * average) / SUM(numObserved) AS weighted_average
FROM my_table
GROUP BY country, year