TurboSQL Guide

GROUP BY

Top  Previous  Next

Verbindet Zeilen mit gemeinsamen Spaltenwerten in einzelnen Zeilen.

GROUP BY column_reference [, column reference...]

Beschreibung

Verwenden Sie eine GROUP BY-Klausel zum Verbinden von Zeilen mit denselben Spaltenwerten in einer einzigen Zeile. Die Kriterien zum Verbinden von Zeilen basieren auf den Werten in denjenigen Spalten, die in der GROUP BY-Klausel angegeben sind. Der Zweck der Verwendung einer GROUP BY-Klausel besteht darin, einen oder mehrere Spaltenwerte in einem einzelnen Wert zu verbinden (aggregieren) und eine oder mehrere Spalten zum eindeutigen Identifizieren der aggregierten Werte bereitzustellen. Eine GROUP BY-Klausel kann nur verwendet werden, wenn auf eine oder mehrere Funktionen eine Aggregatfunktion angewendet wird.

Der Wert für die GROUP BY-Klausel ist eine durch Kommas getrennte Spaltenliste. Jede Spalte in dieser Liste muß folgenden Kriterien entsprechen:

Sie muß in einer der in der FROM-Klausel der Abfrage angegebenen Tabellen stehen.
Sie muß in der SELECT-Klausel der Abfrage stehen.
Auf sie darf keine Aggregatfunktion angewendet werden.

Wird eine GROUP BY-Klausel verwendet, so müssen alle Tabellenspalten in der SELECT-Klausel der Abfrage mindestens einem der folgenden Kriterien genügen, oder sie darf nicht in der SELECT-Klausel stehen:

Sie muß in der GROUP BY-Klausel der Abfrage stehen.
Sie muß im Subjekt einer Aggregatfunktion stehen.

Für Literale in der SELECT-Klausel gelten die genannten Kriterien nicht.

Die Unterscheidbarkeit von Zeilen basiert auf den Spalten in der angegebenen Spaltenliste. Alle Zeilen mit gleichen Werten in diesen Spalten werden in einer einzigen Zeile (oder logischen Gruppe) kombiniert. Für Spalten, die Subjekt einer Aggregatfunktion sind, werden die Werte über alle Zeilen der Gruppe kombiniert. Alle Spalten, die nicht Subjekt einer Aggregatfunktion sind, behalten ihre Werte bei und dienen dazu, die Gruppe eindeutig zu identifizieren. So werden beispielsweise in der folgenden SELECT-Anweisung die Werte in der Spalte SALES basierend auf unterschiedlichen Werten in der Spalte COMPANY in Gruppen aggregiert (summiert). Auf diese Weise werden Verkaufssummen für jede Firma berechnet:

SELECT company, SUM(sales) AS TOTALSALES
FROM sales1998
GROUP BY company
ORDER BY company

Eine Spalte kann in einer GROUP BY-Klausel durch einen Spaltenkorrelationsnamen anstelle tatsächlicher Spaltennamen referenziert werden. Die nachfolgende Anweisung gruppiert unter Verwendung der ersten Spalte, COMPANY, repräsentiert durch den Spaltenkorrelationsnamen Co:

SELECT company AS Co, SUM(sales) AS TOTALSALES
FROM sales1998
GROUP BY Co
ORDER BY 1

Hinweis

Abgeleitete Werte (berechnete Felder) können nicht als Basis für eine GROUP BY-Klausel verwendet werden.
Spaltenreferenzen können einer GROUP BY-Klausel nicht als Parameter übergeben werden.

Anwendung

SELECT, wenn Aggregatfunktionen verwendet werden