Podsumowanie: w tym samouczku nauczysz się, jak używać SQL PARTITION BY
, aby zmienić sposób obliczania wyniku przez funkcję okna.
Omówienie klauzuli SQL PARTITION BY
Klauzula PARTITION BY
jest podrzędną klauzulą klauzula OVER
. Klauzula PARTITION BY
dzieli zestaw wyników zapytania na partycje. Funkcja okna jest obsługiwana osobno na każdej partycji i przelicza dla każdej partycji.
Poniżej przedstawiono składnię klauzuli PARTITION BY
:
Możesz określić jedną lub więcej kolumn lub wyrażeń, aby podzielić zestaw wyników. Element expression1
, expression1
itp. Może odnosić się tylko do kolumn pochodzących z elementu FROM
klauzula. Nie mogą odwoływać się do wyrażeń ani aliasów na liście wyboru.
Wyrażenia klauzuli PARTITION BY
mogą być wyrażeniami kolumnowymi, podzapytaniem skalarnym lub funkcją skalarną. Zwróć uwagę, że podzapytanie skalarne i funkcja skalarna zawsze zwracają jedną wartość.
Jeśli pominiesz klauzulę PARTITION BY
, cały zestaw wyników jest traktowany jako pojedyncza partycja.
PARTITION BY a GROUP BY
Klauzula GROUP BY
jest często używana w połączeniu z funkcją agregującą, taką jak SUM()
i AVG()
. Klauzula GROUP BY
zmniejsza liczbę zwracanych wierszy, zwijając je i obliczając sumy lub średnie dla każdej grupy.
Na przykład poniższa instrukcja zwraca średnią wynagrodzenie pracowników według działów:
Poniższy rysunek przedstawia wynik:
Klauzula PARTITION BY
dzieli wynik na partycje i zmienia sposób obliczania funkcji okna. Klauzula PARTITION BY
nie zmniejsza liczby zwracanych wierszy.
Poniższa instrukcja zwraca pensję pracownika, a także średnie wynagrodzenie działu pracownika:
Oto częściowe dane wyjściowe:
W prostych słowach, klauzula GROUP BY
to agregacja, podczas gdy klauzula PARTITION BY
jest analityczna.
W tym zapoznałeś się z klauzulą SQL PARTITION BY
, która zmienia sposób obliczania wyniku funkcji okna.
- Czy ten samouczek był pomocny?
- TakNie