Freigeben über


Gruppieren von Zeilen in Abfrageergebnissen (Visuelle Datenbanktools)

Gilt für:SQL Server-

Wenn Sie Teilergebnisse erstellen oder andere Zusammenfassungsinformationen für Teilmengen einer Tabelle anzeigen möchten, erstellen Sie Gruppen mithilfe einer Aggregatabfrage. Jede Gruppe fasst die Daten für alle Zeilen in der Tabelle zusammen, die denselben Wert aufweisen.

Sie können beispielsweise den Durchschnittspreis eines Buchs in der tabelle titles anzeigen, die Ergebnisse jedoch nach Herausgebern aufschlüsseln. Dazu gruppieren Sie die Abfrage nach Herausgeber (z. B. pub_id). Die resultierende Abfrageausgabe sieht möglicherweise wie folgt aus:

Abfrageergebnisse: Nach Herausgeber gruppierter Durchschnittspreis

Wenn Sie Daten gruppieren, können Sie nur zusammenfassungs- oder gruppierte Daten anzeigen, z. B.:

  • Die Werte der gruppierten Spalten (die in der GROUP BY-Klausel angezeigt werden). Im obigen Beispiel ist pub_id die gruppierte Spalte.

  • Von Aggregatfunktionen wie SUMME( ) und AVG( ) erzeugte Werte . Im obigen Beispiel wird die zweite Spalte mithilfe der Funktion AVG( ) mit der price Spalte erstellt.

Werte aus einzelnen Zeilen können nicht angezeigt werden. Wenn Sie beispielsweise nur nach Herausgeber gruppieren, können Sie nicht auch einzelne Titel in der Abfrage anzeigen. Wenn Sie Spalten zur Abfrageausgabe hinzufügen, fügt der Abfrage- und Ansichts-Designer sie automatisch der GROUP BY-Klausel der Anweisung im SQL-Bereichhinzu. Wenn stattdessen eine Spalte aggregiert werden soll, können Sie eine Aggregatfunktion für diese Spalte angeben.

Wenn Sie nach mehreren Spalten gruppieren, zeigt jede Gruppe in der Abfrage die Aggregatwerte für alle Gruppierungsspalten an.

Zum Beispiel gruppiert die folgende Abfrage die titles-Tabelle nach Herausgeber (pub_id) und auch nach Buchtyp (type). Die Abfrageergebnisse werden nach Herausgeber sortiert und zeigen zusammenfassungsinformationen für jeden vom Herausgeber erstellten Buchtyp an:

SELECT pub_id, type, SUM(price) Total_price  
FROM titles  
GROUP BY pub_id, type  

Die resultierende Ausgabe sieht möglicherweise wie folgt aus:

Abfrageergebnisse: Nach Herausgeber gruppierter Preis und Typ

So gruppieren Sie Zeilen

  1. Starten Sie die Abfrage, indem Sie die Tabellen hinzufügen, die Sie zum Diagrammbereich zusammenfassen möchten.

  2. Klicken Sie mit der rechten Maustaste auf den Hintergrund des Diagrammbereichs, und wählen Sie dann im Kontextmenü Gruppe hinzufügen nach aus. Der Abfrage- und Ansichts-Designer fügt im Kriterienbereich dem Raster eine Group By--Spalte hinzu.

  3. Fügen Sie die Spalte oder Spalten, die Sie gruppieren möchten, zum Bereich "Kriterien" hinzu. Wenn die Spalte in der Abfrageausgabe angezeigt werden soll, sorgen Sie dafür, dass die Ausgabespalte für die Ausgabe ausgewählt ist.

    Der Abfrage- und Ansichts-Designer fügt der Anweisung im SQL-Bereich eine GROUP BY-Klausel hinzu. Die SQL-Anweisung könnte z. B. wie folgt aussehen:

    SELECT pub_id  
    FROM titles  
    GROUP BY pub_id  
    
  4. Fügen Sie die Spalte oder Spalten hinzu, die Sie zum Kriterienbereich aggregieren möchten. Stellen Sie sicher, dass die Spalte für die Ausgabe markiert ist.

  5. Wählen Sie in der Rasterzelle von Gruppieren nach für die Spalte, die aggregiert werden soll, die entsprechende Aggregatfunktion aus.

    Der Abfrage- und Ansichts-Designer weist der Spalte, die Sie zusammenfassen, automatisch einen Spaltenalias zu. Sie können diesen automatisch generierten Alias durch einen aussagekräftigeren ersetzen. Weitere Informationen finden Sie unter Erstellen von Spaltenaliasen.

    Hinzufügen eines Spaltenalias zum Abfrageergebnissatz

    Die entsprechende Anweisung im Bereich SQL könnte wie folgt aussehen:

    SELECT   pub_id, SUM(price) AS Totalprice  
    FROM     titles  
    GROUP BY pub_id  
    

Siehe auch

Sortieren und Gruppieren von Abfrageergebnissen