Я хочу иметь возможность сделать запрос, который выбирает средние значения из разных групп, а также средние значения, когда выбрана только одна из групп.
Ниже приведен запрос + упрощенная структура таблицы.использование atm.
create table income_region (year int,region varchar(40),income float)
insert into income_region (income,region,year) values (2000,'North America', 2000)
insert into income_region (income,region,year) values(2200,'Europe', 2000)
insert into income_region (income,region,year) values(2101,'North America', 2001)
insert into income_region (income,region,year) values(2001,'Europe', 2001)
insert into income_region (income,region,year) values(2400,'North America', 2000)
select avg(income) as avg_income ,region,year as year
from income_region group by region,year with rollup
Проблема с вышеупомянутым запросом состоит в том, что он показывает только Null для региона, когда год также равен Null.В то время как я хотел бы получить новые строки, в которых регион равен нулю, а год - 2000. И еще один, где регион равен нулю, а год - 2001.
Таким образом, мы получаем все типы вариаций в качестве результата (а не только для года).).Это должно выглядеть примерно так:
avg_income region year
2200 Europe 2000
2001 Europe 2001
2100.5 Europe Null
2200 North America 2000
2101 North America 2001
2167 North America Null
2140.4 Null Null
2200 Null 2000
2050.5 Null 2001