ROLLUP

ROLLUP ist ein Subklausel der GROUP-BY-Klausel. Zu den einzelnen Subaggregaten einer SELECT-Anweisung mit GROUP-BY-Klausel wird eine zusätzliche Aggregationssebene hinzugefügt, was dem Wegfall einer GROUP-BY-Spalte entspricht.

Die ROLLUP-Klausel wird vorzugsweise im Data-Ware-House-Bereich benutzt.

Beispiele1:

 SELECT Abt_nr, Beruf , SUM(Gehalt) 
 FROM Angestellte
 GROUP BY ROLLUP(Abt_nr, Beruf);

 -- Bei dieser SELECT-Anweisung werden je Abteilung die Gehälter je Beruf aufsummiert 
 -- und anschließend noch mal komplett über die Abteilung, sowie die Gesamtsumme über alle Berufe und Abteilungen.

Ergebnis der Abfrage:

ABT_NRBERUFSUM(GEHALT)
  58830
1 10000
1Betriebswirt10000
2 8000
2Kaufmann4000
2Betriebswirt3500
2Schreibkraft500
3 10910
3Betriebswirt7500
3Schreibkraft3410
4 14720
4Kaufmann14720
5 15200
5Kaufmann15200

Beispiele2:

 SELECT Abt_nr, Beruf , SUM(Gehalt) 
 FROM Angestellte
 GROUP BY ROLLUP(Beruf, Abt_nr);

 -- Bei dieser  SELECT-Anweisung werden je Beruf die Gehälter je Abteilung aufsummiert 
 -- und anschließend noch mal komplett über den Beruf, sowie die Gesamtsumme über alle 
 --  Berufe und Abteilungen. Damit hat die Anweisung ein anderes Ergebnis als Beispiel1.

Ergebnis der Abfrage:

ABT_NRBERUFSUM(GEHALT)
1Betriebswirt10000
2Kaufmann4000
2Betriebswirt3500
2Schreibkraft500
3Betriebswirt7500
3Schreibkraft3410
4Kaufmann14720
5Kaufmann15200
  58830
 Betriebswirt21000
 Schreibkraft3910
 Kaufmann33920

ROLLUP und CUBE-Klauseln können noch mal über die GROUPING-Klausel verfeinert werden.

siehe auch: HAVING-Klausel, Gruppenfunktionen, ROLLUP, GROUPING, GROUPING-SETS, GROUP-BY-Klausel

Kategorie: SQL, R

Quellen:

  • ANSI/ISO/IEC 9075-1:2008. Part 1 "SQL/Framework", ISO International Organization for Standardization / ANSI American National Standards Institute, September 2008
  • ANSI/ISO/IEC 9075-2:2008. Part 2 "SQL/Foundation", ISO International Organization for Standardization / ANSI American National Standards Institute, Dezember 2008
  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Melton, Jim/Simon, Alan R.: "SQL: 1999 - Understanding Relational Language Components", Morgan Kaufmann, San Francisco, 2001, ISBN 1558604561
  • Oracle® Database SQL Language Reference 11g Release 2 (11.2), E17118-03, August 2010, http://download.oracle.com/docs/cd/E11882_01/server.112/e17118.pdf
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2