Mysql 分组求和平均值
我有以下表格结构: 来源年份CountryNumObservedAverage -------- abc 2016美国30 15 abc 2017美国10 20 pqr 2016美国5040 pqr 2017 ru 12 26 每个来源中可以有多个来源和多个国家。 我希望输出的形式为: 年份国家平均值 - -- 2016年30.625美元 2017年美国20 2017 ru 26 其中,avg计算为任何给定年份和国家/地区对的∑numObserved*平均值/∑numObservedMysql 分组求和平均值,mysql,sql,Mysql,Sql,我有以下表格结构: 来源年份CountryNumObservedAverage -------- abc 2016美国30 15 abc 2017美国10 20 pqr 2016美国5040 pqr 2017 ru 12 26 每个来源中可以有多个来源和多个国家。 我希望输出的形式为: 年份国家平均值 - -- 2016年30.625美元 2017年美国20 2017 ru 26 其中,avg计算为任何给定年份和国家/地区对的∑numObserved*平均值/∑numObserved 按年份
按年份分组的平均值,国家不起作用,因为它的平均值为15,40,即2016年为27.5,国家=美国 您只需要滚动您自己的加权平均值,而不是依赖内置的平均值函数:
SELECT
country,
year,
SUM(numObserved * average) / SUM(numObserved) AS weighted_average
FROM my_table
GROUP BY country, year
到目前为止,你试过什么?@maSTAShuFu我试过按年份、国家分组,然后平均应用聚合函数avg,但它取平均值的平均值,即avg1+avg2+。。。avgn/n,这不是我想要的。看到了吗