Это сообщение является ссылкой на вопрос, который я разместил здесь:
SQL: группировка по нескольким столбцам
Я не был достаточно конкретным, чтобы запросМне нужно было работать для 3-5 столбцов (а не только для 2 в упрощенном примере), поэтому я пытаюсь снова с расширенным примером:
create table income_region (year int,region varchar(40),income float, sex varchar(10))
insert into income_region (income,region,year,sex) values (2000,'North America', 2000,'Male')
insert into income_region (income,region,year,sex) values(2200,'Europe', 2000,'Male')
insert into income_region (income,region,year,sex) values (2000,'North America', 2000,'Female')
insert into income_region (income,region,year,sex) values(2200,'Europe', 2000,'Female')
insert into income_region (income,region,year,sex) values(2101,'North America', 2001,'Male')
insert into income_region (income,region,year,sex) values(2001,'Europe', 2001,'Male')
insert into income_region (income,region,year,sex) values(2101,'North America', 2001,'Female')
insert into income_region (income,region,year,sex) values(2001,'Europe', 2001,'Female')
Ниже приведен один из немногих запросов, которые я пробовал (на основе модификацийиз ответа, который я получил в связанном посте), который не дает желаемого результата:
select avg(income) as avg_income ,region,year as year,sex as sex
from income_region group by region,year,sex with rollup
Union all
Select avg(income) as avg_income ,null as region,year as year, null as sex
from income_region group by year,sex
Чего не хватает в приведенном выше запросе, так это нулевых значений для столбца "год".Более конкретно, это дополнительные строки, которые я тоже хочу вставить.
Income Region Year Sex
2300 Europe Null Female
2101 Europe Null Male
2100.5 North America Null Male
2400 North America Null Female