Udostępnij za pomocą


Grupowanie wierszy w wynikach zapytania (Visual Database Tools)

Dotyczy:programu SQL Server

Jeśli chcesz utworzyć sumy częściowe lub wyświetlić inne informacje podsumowujące dla podzbiorów tabeli, należy utworzyć grupy przy użyciu zapytania agregowanego. Każda grupa podsumowuje dane dla wszystkich wierszy w tabeli, które mają tę samą wartość.

Na przykład możesz zobaczyć średnią cenę książki w tabeli titles, ale podzielić wyniki według wydawcy. W tym celu należy zgrupować zapytanie według wydawcy (na przykład pub_id). Wynikowe dane wyjściowe zapytania mogą wyglądać następująco:

Zrzut ekranu przedstawiający wyniki zapytania: średnia cena pogrupowana według wydawcy.

Podczas grupowania danych można wyświetlać tylko dane podsumowania lub grupowane, takie jak:

  • Wartości zgrupowanych kolumn (te, które są wyświetlane w klauzuli GROUP BY ). W powyższym przykładzie pub_id to pogrupowana kolumna.

  • Wartości generowane przez funkcje agregujące, takie jak SUM( ) i AVG( ). W powyższym przykładzie druga kolumna jest generowana przy użyciu funkcji AVG( ) z kolumną price.

Nie można wyświetlić wartości z poszczególnych wierszy. Jeśli na przykład grupujesz tylko według wydawcy, nie możesz również wyświetlać pojedynczych tytułów w zapytaniu. W związku z tym, jeśli dodasz kolumny do danych wyjściowych zapytania, narzędzia Projektanta zapytań i widoków (Visual Database Tools) automatycznie dodają je do GROUP BY klauzuli instrukcji w okienku SQL (Visual Database Tools). Jeśli zamiast tego chcesz zagregować kolumnę, możesz określić funkcję agregacji dla tej kolumny.

Jeśli grupujesz według więcej niż jednej kolumny, każda grupa w zapytaniu wyświetla zagregowane wartości dla wszystkich kolumn grupowania.

Na przykład następujące zapytanie względem grup tabel titles według wydawcy (pub_id) oraz według typu książki (type). Wyniki zapytania są uporządkowane według wydawcy i zawierają informacje podsumowania dla każdego innego typu książki tworzonej przez wydawcę:

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

Wynikowe dane wyjściowe mogą wyglądać następująco:

Zrzut ekranu przedstawiający wyniki zapytania: cena pogrupowana według wydawcy i typu.

Grupuj wiersze

  1. Uruchom zapytanie, dodając tabele, które chcesz podsumować w okienku Diagram.

  2. Kliknij prawym przyciskiem myszy tło okienka Diagram, a następnie wybierz pozycję Dodaj grupę według z menu kontekstowego. Projektant zapytań i widoków dodaje kolumnę Grupuj według do siatki w okienku Kryteria.

  3. Dodaj kolumnę lub kolumny, które chcesz zgrupować w okienku Kryteria. Jeśli chcesz, aby kolumna pojawiła się w danych wyjściowych zapytania, upewnij się, że kolumna danych wyjściowych została wybrana.

    Projektant zapytań i widoków dodaje klauzulę GROUP BY do instrukcji w okienku SQL. Na przykład instrukcja SQL może wyglądać następująco:

    SELECT pub_id
    FROM titles
    GROUP BY pub_id;
    
  4. Dodaj kolumnę lub kolumny, które chcesz agregować w okienku Kryteria. Upewnij się, że kolumna jest oznaczona jako dane wyjściowe.

  5. W komórce siatki Grupuj według dla kolumny, która ma zostać zagregowana, wybierz odpowiednią funkcję agregacji.

    Projektant zapytań i widoków automatycznie przypisuje alias kolumny do kolumny, którą podsumowujesz. Ten automatycznie wygenerowany alias można zastąpić bardziej zrozumiałym. Aby uzyskać więcej informacji, zobacz Tworzenie aliasów kolumn (Visual Database Tools).

    Zrzut ekranu przedstawiający dodawanie aliasu kolumny do zestawu wyników zapytania.

    Odpowiadająca instrukcja w okienku SQL może wyglądać następująco:

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