Reduzieren von Zeilengruppen

Aktualisiert: November 2007

Sie können ein Abfrageergebnis erstellen, in dem jede Ergebniszeile einer kompletten Zeilengruppe aus den ursprünglichen Daten entspricht. Beim Reduzieren von Zeilengruppen sind folgende Punkte zu beachten:

  • Sie können doppelte Zeilen entfernen.   Einige Abfragen erstellen Resultsets mit mehreren identischen Zeilen. Sie können z. B. ein Resultset erstellen, in dem jede Zeile den Namen der Stadt und des Landes bzw. der Region für eine Stadt angibt, in der Autoren ansässig sind. Wenn jedoch mehrere Autoren in einer Stadt ansässig sind, werden mehrere identische Zeilen ausgegeben. Hierfür kann folgende SQL-Anweisung formuliert werden:

    SELECT city, state
    FROM authors
    

    Das von der oben stehenden Abfrage generierte Resultset ist nicht sehr sinnvoll. Wenn in einer Stadt vier Autoren ansässig sind, enthält das Resultset vier identische Zeilen. Da das Resultset nur Spalten für die Stadt und das Land/die Region enthält, können die identischen Zeilen nicht voneinander unterschieden werden. Ein Verfahren zur Vermeidung solcher doppelten Zeilen ist das Einbinden zusätzlicher Spalten, durch die die Zeilen eindeutig werden. Wenn Sie z. B. die Namen der Autoren aufnehmen, ergeben sich eindeutige Zeilen (vorausgesetzt, dass nicht mehrere Autoren mit demselben Namen in einer Stadt leben). Hierfür kann folgende SQL-Anweisung formuliert werden:

    SELECT city, state, fname, minit, lname
    FROM authors
    

    Diese Abfrage umgeht zwar das Problem, löst es jedoch nicht. Das Resultset enthält keine Duplikate, es handelt sich aber auch nicht mehr um ein Resultset, das Aussagen zu Städten liefert. Um sowohl die Duplikate im ursprünglichen Resultset zu entfernen als auch Informationen über Städte zu erhalten, können Sie eine Abfrage erstellen, die ausschließlich eindeutige Zeilen zurückgibt. Hierfür kann folgende SQL-Anweisung formuliert werden:

    SELECT DISTINCT city, state
    FROM authors
    

    Ausführliche Informationen zum Ausschließen von Duplikaten finden Sie unter Gewusst wie: Ausschließen doppelter Zeilen.

  • Sie können Berechnungen für Zeilengruppen durchführen.   Das heißt, Sie können Informationen in Zeilengruppen zusammenfassen. Sie können z. B. ein Resultset erstellen, in dem jede Zeile die Stadt, das Land/die Region für die Stadt sowie einen in dieser Stadt ansässigen Autoren enthält sowie zusätzlich die Anzahl der in dieser Stadt lebenden Autoren. Hierfür kann folgende SQL-Anweisung formuliert werden:

    SELECT city, state, COUNT(*)
    FROM authors
    GROUP BY city, state
    

    Ausführliche Informationen über Berechnungen in Zeilengruppen finden Sie unter Zusammenfassen von Abfrageergebnissen und Sortieren und Gruppieren von Abfrageergebnissen.

  • Sie können Auswahlkriterien verwenden, um Gruppen von Zeilen aufzunehmen.   Sie können z. B. ein Resultset erstellen, in dem jede Zeile eine Stadt enthält, in der mehrere Autoren ansässig sind, außerdem das Land/die Region für diese Stadt und zusätzlich die Anzahl der in dieser Stadt ansässigen Autoren. Hierfür kann folgende SQL-Anweisung formuliert werden:

    SELECT city, state, COUNT(*)
    FROM authors
    GROUP BY city, state
    HAVING COUNT(*) > 1
    

    Ausführliche Informationen über das Anwenden von Auswahlkriterien auf Zeilengruppen finden Sie unter Gewusst wie: Angeben von Bedingungen für Gruppen und Gewusst wie: Verwenden von HAVING- und WHERE-Klauseln in derselben Abfrage

Siehe auch

Weitere Ressourcen

Angeben von Suchkriterien

Entwerfen von Abfragen und Ansichten