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:
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.