Jak korzystać z modułu tabeli przestawnej PostgreSQL

Jak Korzystac Z Modulu Tabeli Przestawnej Postgresql



Po uruchomieniu instrukcji SELECT w celu pobrania rekordów z tabeli PostgreSQL dane są zwracane w formie tabelarycznej. Forma tabelaryczna nie zawsze jest najlepsza do odczytu danych, zwłaszcza jeśli chcesz porównać wartości. Lepszym podejściem jest zwrócenie rekordów w postaci tabeli przestawnej. W tym celu PostgreSQL oferuje funkcję tablefunc, która pozwala użytkownikom korzystać z funkcji tabeli przestawnej do reprezentowania danych docelowych w postaci tabeli przestawnej. W tym poście szczegółowo opisano, jak używać funkcji tabeli przestawnej PostgreSQL. Czytaj!

Praca z modułem PostgreSQL Crosstab

Przydatne jest posiadanie miejsca, w którym można określić, w jaki sposób mają być reprezentowane dane. W przypadku PostgreSQL, chociaż domyślnym sposobem jest posiadanie danych w formie tabelarycznej, moduł tabeli przestawnej daje inną opcję. Możesz utworzyć tabele przestawne, korzystając z kolumn „wybierz” z tabeli PostgreSQL, aby uzyskać lepszą prezentację.

Ta niesamowita funkcja jest rozszerzeniem PostgreSQL w wersji 8.3. Rozszerzenie „tablefunc” oferuje funkcję tabeli przestawnej, dzięki której tabele przestawne mogą stanowić zestaw wyników. Podajmy przykład.







Najpierw tworzymy tabelę „wyniki” z trzema kolumnami za pomocą następującego polecenia:





Utworzona tabela jest pusta. Dlatego śmiało użyj zapytania INSERT, aby dodać do niego wartości. W tym przypadku wstawimy kilka wpisów, jak pokazano poniżej:





Jeśli uruchomimy instrukcję „select”, otrzymamy następujące wyniki. Zwróć uwagę, że ten domyślny sposób pobierania rekordów przedstawia je w formie tabelarycznej. Kolumny służą jako nagłówki, a odpowiadające im wartości pojawiają się w wierszach:



Chociaż poprzednie podejście sprawdza się w większości przypadków, istnieje inna możliwość pobrania tych samych rekordów. W tym przypadku chcemy utworzyć tabelę przestawną. Dlatego używamy rozszerzenia „tablefunc” dołączonego do PostgreSQL w wersji 8.3 lub nowszej.


Stwórzmy więc rozszerzenie „tablefunc”, aby włączyć je, gdy wywołamy je w zapytaniu. Wykonaj następujące polecenie:

UTWÓRZ ROZSZERZENIE JEŚLI NIE ISTNIEJE tablefunc ;

Dowiesz się, że rozszerzenie zostało pomyślnie włączone, gdy otrzymasz wynik podobny do tego, który mamy na poprzednim obrazie.

W przypadku naszej funkcji tabeli przestawnej załóżmy, że pierwsza kolumna to wydział. Poniżej znajdują się różne wydziały, które mamy w naszej tabeli. Obok kolumny wydziału znajdują się inne kolumny, które reprezentują różne wartości w kolumnie kategorii w naszej tabeli. Na koniec, dla każdej kategorii mamy liczbę uczniów, którzy osiągnęli różne kategorie.

Aby uzyskać taką tabelę przestawną, użyj następującej składni:

WYBIERAĆ * Z CROSSTABA ( „WYBIERZ kolumnę 1 , kolumna2 , kolumna3 Z nazwa_tabeli ZAMÓW WG kryteriówa” )

AS nowa_nazwa ( kolumna1 typ_danych , kolumna2 typ_danych , kolumna_n typ_danych ) ;

Korzystając z utworzonej przez nas przykładowej tabeli, nasze polecenie wygląda następująco:

Zanim zobaczymy wyniki, przyjrzyjmy się, jak działa polecenie modułu crosstab. Po pierwsze, instrukcja SELECT zwraca trzy kolumny. Pierwsza kolumna traktowana jest jako identyfikator wiersza. W naszym przypadku jest to kolumna „wydział”. Druga kolumna, kolumna „kategoria”, reprezentuje kategorie tabeli przestawnej. Na koniec trzecia kolumna zawiera wartości kategorii. W naszym przypadku jest to liczba uczniów w każdej kategorii.

Mając to na uwadze, po naciśnięciu klawisza „Enter” otrzymamy tabelę przestawną w następujący sposób:

Na podstawie zwróconej tabeli przestawnej widzimy, że działa ona jak tablica 2-D, w której pierwsza kolumna w instrukcji SELECT jest pierwszą tablicą, a druga kolumna jest drugą tablicą w wymiarze. Trzecia kolumna zawiera wartości dla drugich elementów tablicy.

Wniosek

Tabela przestawna PostgreSQL dobrze nadaje się do reprezentowania wartości tabeli jako tabeli przestawnej. Aby skorzystać z modułu tabeli przestawnej, musisz zwrócić trzy kolumny w instrukcji SELECT, a w tym poście przedstawiono praktyczny przykład jego użycia. Poza tym wyjaśniliśmy, jak działa moduł tabeli przestawnej podczas tworzenia tabeli przestawnej, która wykorzystuje tę samą logikę, co tablica 2-D.