Udostępnij za pomocą


Zwiń grupy wierszy (Visual Database Tools)

Dotyczy:programu SQL Server

Możesz utworzyć wynik zapytania, w którym każdy wiersz wyników odpowiada całej grupie wierszy z oryginalnych danych. Podczas zwijania rzędów danych należy pamiętać o kilku kwestiach:

  • Można wyeliminować zduplikowane wiersze Niektóre zapytania mogą tworzyć zestawy wyników, w których pojawia się wiele identycznych wierszy. Można na przykład utworzyć zestaw wyników, w którym każdy wiersz zawiera miasto i nazwę stanu miasta zawierającego autora, ale jeśli miasto zawiera kilku autorów, istnieje kilka identycznych wierszy. Wynikowy kod SQL może wyglądać następująco:

    SELECT city,
           state
    FROM authors;
    

    Zestaw wyników wygenerowany przez poprzednie zapytanie nie jest bardzo przydatny. Jeśli miasto zawiera czterech autorów, zestaw wyników zawiera cztery identyczne wiersze. Ponieważ zestaw wyników nie zawiera żadnych kolumn innych niż miasto i stan, nie ma możliwości odróżnienia identycznych wierszy od siebie. Jednym ze sposobów uniknięcia takich zduplikowanych wierszy jest dołączenie dodatkowych kolumn, które mogą sprawić, że wiersze będą inne. Jeśli na przykład dołączysz nazwę autora, każdy wiersz jest inny (pod warunkiem, że nie ma dwóch autorów o nazwach podobnych w jednym mieście). Wynikowy kod SQL może wyglądać następująco:

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

    Oczywiście poprzednie zapytanie eliminuje objaw, ale tak naprawdę nie rozwiązuje problemu. Oznacza to, że zestaw wyników nie ma duplikatów, ale nie jest już zestawem wyników dla miast. Aby wyeliminować duplikaty w oryginalnym zestawie wyników i nadal każdy wiersz opisuje miasto, można utworzyć zapytanie zwracające tylko odrębne wiersze. Wynikowy kod SQL może wyglądać następująco:

    SELECT DISTINCT city,
                    state
    FROM authors;
    

    Aby uzyskać szczegółowe informacje na temat eliminowania duplikatów, zobacz Wykluczanie zduplikowanych wierszy.

  • Możesz obliczyć grupy wierszy To znaczy, że można podsumować informacje w grupach wierszy. Można na przykład utworzyć zestaw wyników, w którym każdy wiersz zawiera nazwę miasta i stanu miasta zawierającego autora oraz liczbę autorów zawartych w tym mieście. Wynikowy kod SQL może wyglądać następująco:

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

    Aby uzyskać szczegółowe informacje na temat obliczania grup wierszy, zobacz Podsumowanie wyników zapytania i Sortowanie i grupowanie wyników zapytania.

  • Można użyć kryteriów wyboru, aby uwzględnić grupy wierszy Na przykład można utworzyć zestaw wyników, w którym każdy wiersz zawiera miasto i nazwę miasta zawierającego kilku autorów oraz liczbę autorów zawartych w tym mieście. Wynikowy kod SQL może wyglądać następująco:

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

    Aby uzyskać szczegółowe informacje na temat stosowania kryteriów wyboru dla grup wierszy, zobacz Określanie warunków dla grup i Używanie klauzul HAVING i WHERE w tym samym zapytaniu.