CUBE

CUBE ist so etwas wie die mehrdimensionale Version der ROLLUP-Klausel. Es werden alle möglichen Gruppierungen aggregiert und zusammengefasst. CUBE ist auch eine Subklausel der GROUP-BY-Klausel. Auch die CUBE-Klausel wird vorzugsweise im Data-Ware-House-Bereich benutzt.

Beispiele

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

 -- Bei dieser SELECT-Anweisung wird zunächst die Summe über alle Gehälter der Tabelle Angestellte summiert, 
 -- dann werden die einzelnen Abteilungssummen ausgegeben, gefolgt von der Summe aller Gehälter über jeden Beruf 
 -- und der Summe aller Gehälter je Abteilung und Beruf. Damit sind alle Zwischensummen berechnet, 
 -- die für diese gruppierte Abfrage gebildet werden können. 
 -- Bei der ROLLUP-Klausel an stelle von CUBE würden die Summen über die Berufe fehlen

Ergebnis der Abfrage:

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

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, C