У меня есть таблица показателей (например, количество студентов) для школ в ряде районов.Как объединить таблицу и агрегированные результаты в SQL
мне нужно агрегировать эти показатели по районам, и я хотел бы, чтобы сопоставить эти агрегаты в нижней части моей исходной таблицы:
у меня есть:
district school students
District1 School1 10
District2 School2 20
District1 School3 30
District2 School4 40
District1 School5 50
District2 School6 60
Я хотел бы, чтобы в конечном итоге получить в та же таблица:
district school students
District1 School1 10
District2 School2 20
District1 School3 30
District2 School4 40
District1 School5 50
District2 School6 60
District1 Total 90
District2 Total 120
Я попытался
SELECT district, school, students
FROM enrolment
UNION
SELECT district, "Total" as school, sum(students)
FROM enrolment
GROUP BY district;
, но я на самом деле вытаскиваю много индикаторов из множества разных запросов и объединяюсь на двух дополнительных уровнях (штатах и странах), поэтому он очень медленный. Есть ли наиболее эффективный способ сделать это?
Какие РСУБД? Microsoft SQL Server? MySQL? Oracle? –
Имея итоговые значения в одной таблице или запросе, не имеет смысла. Переосмыслить то, что вы действительно хотите. Подумайте об этом: имеет ли смысл «Total» под колонкой «школа»? –
@NazarMerza Это не обязательно плохая идея. Это в основном то, что делает ROLLUP ... – Jerrad