Kako uporabljati modul PostrgreSQL Crosstab

Kako Uporabljati Modul Postrgresql Crosstab



Ko zaženete stavek SELECT za pridobitev zapisov iz tabele PostgreSQL, se podatki vrnejo v obliki tabele. Tabelarična oblika morda ni vedno najboljša za branje podatkov, še posebej, če želite primerjati vrednosti. Boljši pristop je vrniti zapise kot navzkrižno tabelo. Za to PostgreSQL ponuja funkcijo tablefunc, ki uporabnikom omogoča uporabo funkcije navzkrižne tabele za predstavitev ciljnih podatkov kot vrtilne tabele. Ta objava podrobneje opisuje, kako uporabljati funkcijo navzkrižne tabele PostgreSQL. Beri naprej!

Delo z modulom navzkrižne tabele PostgreSQL

Koristno je imeti prostor za določitev, kako želite, da so vaši podatki predstavljeni. Pri PostgreSQL, čeprav je privzeti način, da so podatki v obliki tabele, vam modul navzkrižne tabele nudi še eno možnost. Za boljšo predstavitev lahko ustvarite vrtilne tabele z uporabo stolpcev »select« iz tabele PostgreSQL.

Neverjetna funkcija prihaja kot razširitev za PostgreSQL različice 8.3. Razširitev »tablefunc« ponuja funkcijo navzkrižne tabele, kar omogoča vrtilne tabele kot niz rezultatov. Naj navedemo primer.







Najprej ustvarimo tabelo »rezultati« s tremi stolpci z naslednjim ukazom:





Ustvarjena tabela je prazna. Zato nadaljujte in uporabite poizvedbo INSERT, da ji dodate vrednosti. V tem primeru vstavimo nekaj vnosov, kot je prikazano spodaj:





Če zaženemo stavek »select«, dobimo naslednje rezultate. Upoštevajte, kako ta privzeti način pridobivanja zapisov predstavi v obliki tabele. Stolpci se uporabljajo kot glave in njihove ustrezne vrednosti so prikazane v vrsticah:



Čeprav prejšnji pristop deluje v večini primerov, obstaja še ena možnost za pridobivanje istih zapisov. V tem primeru želimo ustvariti vrtilno tabelo. Zato uporabljamo razširitev »tablefunc«, ki je priložena različici PostgreSQL 8.3+.


Torej, ustvarimo razširitev »tablefunc«, da jo omogočimo, ko jo pokličemo v poizvedbi. Izvedite naslednji ukaz:

USTVARI RAZŠIRITEV, ČE NE OBSTAJA tablefunc ;

Vedeli boste, da je bila razširitev uspešno omogočena, ko boste dobili izhod, kot je tisti, ki ga imamo na prejšnji sliki.

Za našo funkcijo navzkrižne tabele naredimo tako, da bo prvi stolpec fakulteta. Pod njim so različne fakultete, ki jih imamo v naši tabeli. Poleg stolpca fakulteta imamo druge stolpce, ki predstavljajo različne vrednosti v stolpcu kategorije naše tabele. Nazadnje, za vsako kategorijo imamo število študentov, ki so dosegli različne kategorije.

Če želite doseči takšno vrtilno tabelo, uporabite naslednjo sintakso:

IZBERI * IZ CROSSTABA ( 'IZBERI stolpec1 , stolpec2 , stolpec3 FROM table_name ORDER BY kriterija' )

KOT novo_ime ( stolpec1 data_type , stolpec2 data_type , stolpec_n podatkovni_tip ) ;

Z uporabo vzorčne tabele, ki smo jo ustvarili, je naš ukaz videti takole:

Preden vidimo rezultate, si oglejmo razčlenitev delovanja ukaza modula crosstab. Najprej stavek SELECT vrne tri stolpce. Prvi stolpec se obravnava kot identifikator vrstice. V našem primeru je to stolpec »fakulteta«. Drugi stolpec, ki je stolpec »kategorija«, predstavlja kategorije za vrtilno tabelo. Nazadnje, tretji stolpec vsebuje vrednosti za kategorije. V našem primeru je to število študentov v posamezni kategoriji.

Če to razumemo, ko pritisnemo tipko 'Enter', dobimo vrtilno tabelo, kot sledi:

Na podlagi vrnjene vrtilne tabele lahko vidimo, da deluje kot dvodimenzionalna matrika, kjer je prvi stolpec v stavku SELECT prva matrika, drugi stolpec pa druga matrika v dimenziji. Tretji stolpec vsebuje vrednosti za elemente druge matrike.

Zaključek

Navzkrižna tabela PostgreSQL je dobra za predstavitev vrednosti tabele kot vrtilno tabelo. Za uporabo modula navzkrižne tabele morate vrniti tri stolpce v stavku SELECT, ta objava pa deli praktični primer, kako ga uporabljati. Poleg tega smo razložili, kako deluje modul navzkrižne tabele pri ustvarjanju vrtilne tabele, ki uporablja isto logiko kot 2-D polje.