Gruppieren von Zeilen in Abfrageergebnissen (Visual Database Tools)
Zum Bilden von Teilergebnissen oder zum Anzeigen weiterer Kurzinformationen für Teilbereiche einer Tabelle erstellen Sie Gruppen mithilfe einer Aggregatabfrage. In jeder Gruppe werden die Daten aus allen Zeilen der Tabelle mit demselben Wert zusammengefasst.
Angenommen, Sie möchten den durchschnittlichen Preis für ein Buch in der Tabelle titles
anzeigen lassen, wobei die Ergebnisse nach Herausgeber aufgeteilt werden sollen. Dazu gruppieren Sie die Abfrage nach Herausgeber (z. B. pub_id
). Hierfür kann folgende Abfrageausgabe formuliert werden:
Beim Gruppieren von Daten können nur Daten aus Zusammenfassungen bzw. gruppierte Daten angezeigt werden, z. B.:
Die Werte der gruppierten Spalten (die in der GROUP BY-Klausel auftreten). Im oben angeführten Beispiel ist
pub_id
die gruppierte Spalte.Die Werte, die von Aggregatfunktionen wie SUM( ) und AVG( ) erzeugt werden. Im oben aufgeführten Beispiel wird die zweite Spalte erstellt, indem die Funktion AVG( ) auf die Spalte
price
angewendet wird.
Werte aus einzelnen Zeilen können nicht angezeigt werden. Wenn Sie z. B. nur nach Herausgeber gruppieren, können nicht gleichzeitig die einzelnen Titel in der Abfrage angezeigt werden. Wenn Sie daher dem Abfrageergebnis Spalten hinzufügen, fügt der Abfrage- und Sicht-Designer diese automatisch der GROUP BY-Klausel der Anweisung im SQL-Bereichhinzu. Wenn eine Spalte stattdessen aggregiert werden soll, können Sie für diese Spalte eine Aggregatfunktion angeben.
Wenn Sie nach mehreren Spalten gruppieren, werden von jeder Gruppe der Abfrage die Aggregatwerte für alle Gruppenspalten angezeigt.
In der folgenden Abfrage für die Tabelle titles
sind die Zeilen beispielsweise sowohl nach Herausgeber (pub_id
) als auch nach Buchtyp (type
) gruppiert. Die Abfrageergebnisse sind nach Herausgeber geordnet und zeigen für jeden Buchtyp des jeweiligen Herausgebers Kurzinformationen an:
SELECT pub_id, type, SUM(price) Total_price
FROM titles
GROUP BY pub_id, type
Die entsprechende Ausgabe könnte folgendermaßen aussehen:
So gruppieren Sie Zeilen
Starten Sie die Abfrage, indem Sie dem Diagrammbereich die Tabellen hinzufügen, die zusammengefasst werden sollen.
Klicken Sie mit der rechten Maustaste auf den Hintergrund des Diagrammbereichs, und wählen Sie im Kontextmenü die Option Gruppe hinzufügen nach aus. Der Abfrage- und Sicht-Designer fügt dem Datenblatt im Kriterienbereich die Spalte Gruppieren nach hinzu.
Fügen Sie dem Kriterienbereich die Spalte(n) hinzu, die gruppiert werden soll(en). Wenn die Spalte im Abfrageergebnis aufgeführt werden soll, muss die Spalte Ausgabe für die Ausgabe aktiviert sein.
Der Abfrage- und Sicht-Designer fügt der Anweisung im SQL-Bereich eine GROUP BY-Klausel hinzu. Die SQL-Anweisung könnte z. B. folgendermaßen aussehen:
SELECT pub_id FROM titles GROUP BY pub_id
Fügen Sie dem Kriterienbereich die Spalte(n) hinzu, die aggregiert werden soll(en). Vergewissern Sie sich, dass die Spalte für die Ausgabe ausgewählt ist.
Wählen Sie in der Datenblattzelle Gruppieren nach der zu aggregierenden Spalte die entsprechende Aggregatfunktion aus.
Der Abfrage- und Sicht-Designer weist der Spalte, die zusammengefasst wird, automatisch einen Spaltenalias zu. Sie können diesen automatisch generierten durch einen aussagekräftigeren Alias ersetzen. Weitere Informationen finden Sie unter Erstellen von Spaltenaliasen (Visual Database Tools).
Die entsprechende Anweisung im Bereich SQL könnte folgendermaßen aussehen:
SELECT pub_id, SUM(price) AS Totalprice FROM titles GROUP BY pub_id
Weitere Informationen
Sortieren und Gruppieren von Abfrageergebnissen (Visual Database Tools)