Relationenalgebra und SQL: Gruppierungsoperator und Aggregatfunktionen
Die Gruppierung wendet Funktionen auf gleiche Attribute in einer Relation an. Der Operator γ erhält eine Liste von Funktionen und eine Attributliste. Die Funktionen werden dann auf Tupel angewendet für die die Attribute der Attributliste gleich sind. Die Ausgabe ist eine neue Relation bestehend aus der Attributliste und einem neuen Attribut, das die Ergebnisse der Funktionsliste enthält.
Die Funktionen sind dann die üblichen Aggregatfunktionen cnt, sum, max, avg …
.
Definition
Seien R eine Relation und A = {A1, …, An} Attribute aus R. F(X) sei eine Funktionsliste f1(x1), …, fn(xn). Die Gruppierung ist dann
Für eine leere Attributmenge (also γF(X);{}(…)) wird ein zusätzliches Attribut erzeugt, das den Wert der Funktionsanwendung über die gesamte Relation enthält. Dies wird ausgenutzt, um die Relation mit der Selektion in Teilrelationen mit gleichen Attributen zu zerlegen, die dann mit der Funktionsanwendung wieder zusammengesetzt werden.
Durch eine Gruppierung über alle Attribute der Relation und mit einer leeren Funktionsliste werden Duplikate (doppelt vorkommende Tupel) innerhalb der Relation eliminiert.