Funkcje Window PostgreSQL odgrywają ważną rolę w aplikacjach analitycznych. Funkcje Window ułatwiają użytkownikom wykonywanie funkcji obejmujących wiele wierszy i zwracanie również taką samą liczbę wierszy w odpowiedzi. Funkcje Window PostgreSQL różnią się tym samym mocno od innych funkcji agregujących ponieważ te ostatnie mogą zwrócić tylko jeden wiersz.
Wyobraźmy sobie, że mamy tabelę pracownicy, w której mamy identyfikator pracownika, wynagrodzenie i nazwą przedziału. Ale zamiast sobie wyobrażać tabelę to po prostu ją stwórzmy:
Tabela została pomyślnie utworzona, wiemy o tym ponieważ otrzymujemy wiadomość w konsoli:
Teraz wstawimy nieco danych do tabeli:
Najłatwiejszym sposobem zrozumienia działania funkcji Window jest rozpoczęcie działania na danych przy użyciu funkcji agregujących. Jak już wcześniej wspomniałam, funkcja agregująca agreguje dane z zestawu wierszy w jeden wiersz. W poniższym przykładzie zastosowano funkcję agregującą AVG() do wyliczenia średniej pensji wszystkich pracowników w tabeli pracownicy:
W wyniku zapytania dostajemy jeden wiersz wyniku:
Załóżmy teraz, że chcesz wyświetlić średnią pensję pracowników wg przedziałów. Możesz to osiągnąć za pomocą poniższego zapytania:
W wyniku powyższego zapytania otrzymujemy na wyjściu:
Jeżeli użylibyśmy oprócz funkcji agregującej AVG() również GROUP BY tak jak poniżej:
Otrzymalibyśmy na wyjściu: