代码之家  ›  专栏  ›  技术社区  ›  SaadH

求和平均值的分组依据

  •  -1
  • SaadH  · 技术社区  · 8 年前

    我有以下表格结构:

    资料来源平均值
    -----------
    ABC 160;____________________15
    ABC 160;___________________ 20
    PQR 2016美国5040
    PQR____________ 12 二十六

    每个国家中可能有多个来源和多个国家 source 。 我希望输出的形式是:

    年份国家平均值
    ---------
    2016年美国30.625
    2017年美国20
    2017_________26

    其中avg计算为( numObserved * average / (numObserved )对于任何给定的一对 year country

    这个 avg(average) group by year, country 不起作用,因为平均需要15,40(即27.5) year = 2016 country = us

    1 回复  |  直到 8 年前
        1
  •  1
  •   Peter Ellis    8 年前

    你只需要“滚动你自己的”加权平均值,而不是依靠内置的 avg 功能:

    SELECT
        country,
        year,
        SUM(numObserved * average) / SUM(numObserved) AS weighted_average
    FROM my_table
    GROUP BY country, year