我正在使用一个表格,该表格具有以下20年不同的信息
我正在按功能分组,以便获得每个组的平均收入水平。最近我在这里得到了帮助(SQL Group by. Add new row with average result for all groups) 因此我可以为所有区域添加一个带有平均收入的额外行。
select avg(income),region,year,count(*) as population_size
from income_region group by region,year
union all
select avg(income),'All','All',count(*) as population_size from income_region
但是,当我在组中添加额外的“年份”列并尝试对年份和地区进行“全部合并”解决方案时,它仅计算所有年份和所有地区的平均收入。
理想情况下,我还将拥有以下类型的新群组:
year = 2001
时的平均收入year = 2002'
...等(所有年份)的平均收入region = 'North America'
时所有年份的平均收入region = 'Europe'
等所有年份的平均收入(对于所有地区)这怎么办?
答案 0 :(得分:0)
尝试使用with rollup
:
select region, year, count(*) as population_size, avg(income)
from income_region
group by region with rollup;
您可以参考documentation以获得更多详细信息。
答案 1 :(得分:0)
只需使用汇总
select avg(income),region,year,count(*) as population_size
from income_region group by region with rollup