Freigeben über


Einklappen von Zeilengruppen (Visuelle Datenbanktools)

Gilt für:SQL Server-

Sie können ein Abfrageergebnis erstellen, in dem jede Ergebniszeile einer ganzen Gruppe von Zeilen aus den ursprünglichen Daten entspricht. Beim Einklappen von Zeilen gibt es mehrere Dinge, die Sie berücksichtigen sollten:

  • Sie können doppelte Zeilen beseitigen Einige Abfragen können Ergebnismengen erstellen, in denen mehrfach identische Zeilen vorkommen. Sie können z. B. ein Resultset erstellen, in dem jede Zeile den Stadt- und Bundeslandnamen einer Stadt enthält, die einen Autor enthält . Wenn eine Stadt jedoch mehrere Autoren enthält, gibt es mehrere identische Zeilen. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:

    SELECT city,
           state
    FROM authors;
    

    Das von der vorherigen Abfrage generierte Resultset ist nicht sehr nützlich. Wenn eine Stadt vier Autoren enthält, enthält das Resultset vier identische Zeilen. Da das Resultset keine anderen Spalten als Stadt und Bundesland enthält, gibt es keine Möglichkeit, die identischen Zeilen voneinander zu unterscheiden. Eine Möglichkeit, solche doppelten Zeilen zu vermeiden, besteht darin, zusätzliche Spalten einzuschließen, die die Zeilen unterschiedlich machen können. Wenn Sie z. B. den Namen des Autors angeben, ist jede Zeile unterschiedlich (sofern keine zwei autoren mit namenähnlichen Namen innerhalb einer Stadt leben). Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:

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

    Natürlich beseitigt die vorherige Abfrage das Symptom, löst aber das Problem nicht wirklich. Das heißt, das Resultset hat keine Duplikate, aber es ist kein Resultset mehr über Städte. Um Duplikate im ursprünglichen Resultset zu beseitigen und dennoch jede Zeile eine Stadt zu beschreiben, können Sie eine Abfrage erstellen, die nur unterschiedliche Zeilen zurückgibt. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:

    SELECT DISTINCT city,
                    state
    FROM authors;
    

    Ausführliche Informationen zum Entfernen von Duplikaten finden Sie unter "Ausschließen doppelter Zeilen".

  • Sie können in Zeilengruppen berechnen. Das heißt, Sie können Informationen in Zeilengruppen zusammenfassen. Zum Beispiel können Sie eine Ergebnismenge erstellen, in der jede Zeile den Namen der Stadt und des Bundeslandes einer Stadt enthält, die einen Autor beinhaltet, sowie eine Zählung der in dieser Stadt enthaltenen Autoren. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:

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

    Ausführliche Informationen zum Berechnen von Zeilengruppen finden Sie unter "Zusammenfassen von Abfrageergebnissen " und " Sortieren und Gruppieren von Abfrageergebnissen".

  • Sie können Auswahlkriterien verwenden, um Gruppen von Zeilen einzuschließen. Sie können z. B. ein Resultset erstellen, in dem jede Zeile den Stadt- und Bundeslandnamen einer Stadt enthält, die mehrere Autoren hat, sowie die Anzahl der Autoren, die in dieser Stadt leben. Die resultierende SQL-Datei sieht möglicherweise wie folgt aus:

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

    Ausführliche Informationen zum Anwenden von Auswahlkriterien für Zeilengruppen finden Sie unter Angeben von Bedingungen für Gruppen und Verwenden von HAVING- und WHERE-Klauseln in derselben Abfrage.