Podsumowanie: w tym samouczku dowiesz się, jak używać klauzuli SQL Server GROUP BY
do układania wierszy w grupach według jednej lub więcej kolumn.
Wprowadzenie do grupy SQL Server przez klauzulę
klauzulaGROUP BY
pozwala na uporządkowanie wierszy zapytania w grupach. Grupy są określane przez kolumny określone w klauzuli GROUP BY
.,
Poniższa ilustracja ilustruje składnię klauzuli GROUP BY
:
Code language: SQL (Structured Query Language) (sql)
w tym zapytaniu GROUP BY
tworzy grupę dla każdej kombinacji wartości w kolumnach wymienionych w GROUP BY
klauzula.
rozważ następujący przykład:
w tym przykładzie pobraliśmy identyfikator klienta i zamówiony rok klientów z ID klienta 1 i 2.,
jak widać wyraźnie z danych wyjściowych, klient o identyfikatorze złożył jedno zamówienie w 2016 roku i dwa zamówienia w 2018 roku. Klient z id two złożył dwa zamówienia w 2017 roku i jedno zamówienie w 2018 roku.
dodajmy GROUP BY
klauzulę do zapytania, aby zobaczyć efekt:
uporządkowała pierwsze trzy wiersze w dwie grupy, a następne trzy wiersze w dwie pozostałe grupy z unikalnymi kombinacjami identyfikatora klienta i roku zamówienia.,
funkcjonalnie rzecz biorąc, klauzula GROUP BY
w powyższym zapytaniu dała taki sam wynik, jak poniższe zapytanie, które wykorzystuje klauzulę DISTINCT
:
SQL Server GROUP BY clause and aggregate functions
w praktyce GROUP BY
klauzula jest często używany z funkcjami agregacji do generowania raportów podsumowujących.
klauzulaGROUP BY
układa wiersze w grupy, a funkcja agregująca zwraca podsumowanie (count, min, max, average, sum, itd.,) dla każdej grupy.,
na przykład, następujące zapytanie zwraca liczbę zamówień złożonych przez klienta według roku:
Jeśli chcesz odwołać się do dowolnej kolumny lub wyrażenia, które nie są wymienione w GROUP BY
klauzula, musisz użyć tej kolumny jako wejścia funkcji agregującej. W przeciwnym razie pojawi się błąd, ponieważ nie ma gwarancji, że kolumna lub wyrażenie zwróci pojedynczą wartość dla grupy., Na przykład, poniższe zapytanie nie powiedzie się:
więcej Grupuj według przykładów klauzuli
weźmy więcej przykładów, aby zrozumieć, jak działa klauzulaGROUP BY
.
używając klauzuli GROUP BY z przykładową funkcją COUNT ()
następujące zapytanie zwraca liczbę klientów w każdym mieście:
w tym przykładzie, grupuje klientów według miast, a funkcja COUNT()
zwraca liczbę klientów w każdym mieście.,
podobnie, poniższe zapytanie zwraca liczbę klientów według stanu i miasta.
używanie klauzuli GROUP BY z przykładowymi funkcjami MIN i MAX
poniższe polecenie zwraca minimalne i maksymalne ceny katalogowe wszystkich produktów z modelu 2018 według marki:
w tym przykładzie klauzula WHERE
jest jak zawsze przetwarzana przed klauzulą GROUP BY
.,v>
używanie klauzuli GROUP BY z przykładem funkcji SUM
zobacz następujący order_items
tabela:
poniższe zapytanie używa funkcji SUM()
aby uzyskać wartość netto każdego zamówienia:
w tym samouczku nauczyłeś się używać klauzuli SQL Server GROUP BY
do układania wierszy w grupach według określonej listy kolumn.,