Я работаю с таблицей, которая содержит следующую информацию за 20 разных лет
- Доход для граждан за данный год
- Регион, в котором указано, где живут граждане
- Год, который представляет доход гражданина в текущем году
Я использую группу по функциям, чтобы получить средний уровень дохода для каждой группы, год.И недавно я получил помощь здесь ( SQL Group by. Добавить новую строку со средним результатом для всех групп ), чтобы я мог добавить дополнительную строку со средним доходом для всех регионов.
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'
.. и т. д. (для всех регионов)
Как это можно сделать?