GROUPING

GROUPING(<Spaltenname>) ist eine skalare Funktion mit den Werten 0 oder 1. GROUPING wird in der SELECT-Klausel benutzt.

  • GROUPING (<Spaltenname>) ist 0, wenn das Ergebnis einer CUBE -oder ROLLUP-Operation regulär in einem GROUP-BY-Ausdruck ohne CUBE oder ROLLUP produziert wird.
  • GROUPING (<Spaltenname>) ist 1, wenn es sich bei der Ausgabe um ein Subaggregat handelt.
  • GROUPING setzt voraus, dass es eine GROUP-BY-Klausel gibt.

Beispiel:

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

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

GROUPING(ABT_Nr) ist 1, wenn es sich um ein Subaggregat handelt, also z.B. um die komplette Abteilungssumme oder die Summe über alle Gehälter je Beruf. Für Tupel, die in einem GROUP BY ohne CUBE oder ROLLUP vorkommen, ist GROUPING(Abt_Nr) gleich 0.

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

Kategorie: SQL, G