Lets sagen, ich habe eine Tabelle census
mit den folgenden Informationen genannt:Insgesamt Zusammenfassung mit mehreren GROUP BY
COUNTRY PROVINCE CITY POPULATION
==============================================
USA California Sacramento 1234
USA California SanFran 4321
USA Texas Houston 1111
USA Texas Dallas 2222
Canada Ontario Ottawa 3333
Canada Manitoba Winnipeg 4444
Ich baue einen Bericht auf dem Land/der Provinz-Ebene, die mir folgendes ergibt:
SELECT country, province, SUM(population)
FROM census
GROUP BY country, province;
COUNTRY PROVINCE SUM(POPULATION)
=======================================
USA California 5555
USA Texas 3333
Canada Ontario 3333
Canada Manitoba 4444
ich suche eine „Gesamtübersicht“ Reihe haben auf den Bericht aufgenommen, so dass das Endergebnis aussieht:
COUNTRY PROVINCE SUM(POPULATION)
=======================================
USA California 5555
USA Texas 3333
Canada Ontario 3333
Canada Manitoba 4444
TOTAL 16665
Ich kenne ROLLUP
s, aber ich kann nicht scheinen, eine Kombination zu finden, die mich bekommt, wonach ich suche. Die Verwendung von enthält den Gesamtwert, den ich möchte, aber es enthält auch eine große Anzahl von zusätzlichen Werten, die mir egal sind. Dies gilt auch für GROUP BY ROLLUP(country), province
Wie kann ich den "Gesamt" -Datensatz erstellen?
Ich berechne es gerade mit einem und wiederhole 90% der ersten Abfrage mit einem anderen GROUP BY
, aber weil die erste Abfrage nicht trivial ist, ist das Ergebnis langsamer und hässlicher Code.
Hier ist eine SQL-Fiddle für diejenigen, die mit diesem spielen wollen: http://sqlfiddle.com/#!4/12ad9/5
möglich Duplikat [Hinzufügen eines Zusammenfassungszeile mit Summen] (http://stackoverflow.com/questions/17934318/add-a-summary-row-with-totals) – Bulat
@Bulat - Das ist für ein einzelnes Spalte in einer GROUP BY und verwendet SQL Server-spezifische Syntax. –
Nun, Sie können die gleiche Antwort dort finden und geben Sie eine Stimme. Wenn nur die Anzahl der Spalten und ihre Namen wichtig wären ... Und trotzdem ist es ein +1 für die gut präsentierte Frage. – Bulat