Spisie treści
Funkcje grupowe są wbudowane w funkcje SQL, które działają na grupach wierszy i zwracają wartość dla całej grupy. Te funkcje to: GRUPA, POSIADAJĄC, LICZBA, MAKS, MIN, ŚREDNIA, SUMA, RÓŻNE.Klauzula GRUPUJ WEDŁUG używany w połączeniu z funkcjami grupowymi do pobierania danych pogrupowanych według jednej lub większej liczby kolumn.
Sumy częściowe można uzyskać za pomocą klauzuli GROUP BY. Zapytanie z klauzulą GROUP BY jest nazywane zapytaniem grupowym, ponieważ grupuje dane w tabeli źródłowej i tworzy jeden wiersz podsumowania dla każdej utworzonej grupy. Kolumny wskazane w GROUP BY nazywane są kolumnami grupującymi.
Załóżmy tabelę sprzedaży z następującymi polami
Identyfikator | produkt | cena | ilość | sprzedawca id
Przykład:
WYBIERZ SUMĘ (cenę) jako całkowitą sprzedaż ze sprzedaży
Pobiera sumę całkowitej sprzedaży, która została dokonana, wartość jest przypisywana do całkowitej sprzedaży
WYBIERZ SUMA (sprzedaż) Z GRUPY sprzedaży WG id pracownikDla każdego pracownika tworzona jest grupa, a suma jest obliczana w wierszach każdej grupy. W poprzednim przykładzie otrzymujemy listę z sumą sprzedaży każdego z pracowników.
Zapytanie lepiej byłoby umieścić na liście wyboru nazwisko pracownika, aby wiedzieć, któremu pracownikowi odpowiada suma sprzedaży:
SELECT pracownicy.nazwa, SUMA (cena) AS sprzedażwedług pracownika FROM sprzedaż, pracownicy Gdzie sales.idemployee = workers.idemployee GROUP BY ideemployee
Tylko:
wartości stałe
funkcje kolumn
grupowanie kolumn (kolumn, które pojawiają się w klauzuli GROUP BY)
lub dowolne wyrażenie oparte na powyższym.
Przykład: Chcemy, gdybyśmy mieli oddziały i chcielibyśmy uzyskać sumę sprzedaży pracowników pogrupowanych według regionu i miasta:
WYBIERZ SUMA (cena) jako sprzedaż według oddziałów Z GRUPY sprzedaży WEDŁUG regionu, miasta
Jest pogrupowane najpierw według regionu, aw każdym regionie według miasta.
Wszystkie wiersze, które w polu grupowania mają wartość null, stają się pojedynczą grupą. Oznacza to, że traktuje wartość null jako dowolną wartość do celów grupowania.
Klauzula POSIADAJĄCY
Klauzula HAVING pozwala nam wybrać wiersze z tabeli wynikające z zapytania grupującego
W warunku wyboru mogą pojawić się tylko następujące elementy:
wartości stałe
funkcje kolumn
grupowanie kolumn (kolumn, które pojawiają się w klauzuli GROUP BY)
lub dowolne wyrażenie oparte na powyższym.
Przykład: Chcemy wiedzieć, którzy pracownicy sprzedali więcej niż 10 000 euro
WYBIERZ * Z GRUPY SPRZEDAŻY WG PRACOWNIKA POSIADAJĄC ŚREDNIĄ (cenę)> 10000
Aby uzyskać to, o co jest proszone, musimy obliczyć średnią sprzedaż pracowników, pogrupować pracowników według id i obliczyć średnią dla każdej sprzedaży na pracownika, na koniec wybrać z wyniku wiersze, które mają średnią wyższą niż 10.000.
W jaki sposób zapytanie grupowe jest uruchamiane wewnętrznie?
Najpierw tworzona jest tabela źródeł danych zgodnie z klauzulą FROM,
wiersze są wybierane ze źródła danych zgodnie z klauzulą WHERE,
grupy wierszy tworzone są zgodnie z klauzulą GROUP BY,
Dla każdej grupy w wynikowej tabeli uzyskuje się wiersz z wartościami, które pojawiają się w klauzulach GROUP BY, HAVING i na liście wyboru,
wiersze są wybierane z tabeli wynikowej zgodnie z klauzulą HAVING,
kolumny, które nie pojawiają się na liście wyboru są usuwane z tabeli wynikowej,
wiersze tabeli wynikowej są uporządkowane zgodnie z klauzulą ***** BY
Zapytanie staje się zapytaniem grupowym, gdy tylko pojawi się funkcja GROUP BY, HAVING lub funkcja kolumnowa.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt