Kako koristiti PostrgreSQL Crosstab modul

Kako Koristiti Postrgresql Crosstab Modul



Kada pokrenete naredbu SELECT za dohvaćanje zapisa iz PostgreSQL tablice, podaci se vraćaju u tabličnom obliku. Tablični oblik možda nije uvijek najbolji za čitanje podataka, posebno kada želite usporediti vrijednosti. Bolji pristup je vratiti zapise kao unakrsnu tablicu. Za to, PostgreSQL nudi funkciju table kako bi korisnicima omogućio korištenje funkcije crosstab za predstavljanje ciljnih podataka kao stožerne tablice. Ovaj post razrađuje više o tome kako koristiti funkciju unakrsne tablice PostgreSQL. Nastavi čitati!

Rad s PostgreSQL Crosstab modulom

Korisno je imati prostor za navođenje kako želite da vaši podaci budu predstavljeni. Uz PostgreSQL, iako je zadani način da podaci budu u tabelarnom obliku, modul crosstab daje vam još jednu mogućnost. Zaokretne tablice možete izraditi pomoću stupaca 'odaberi' iz PostgreSQL tablice za bolju prezentaciju.

Nevjerojatna značajka dolazi kao proširenje za PostgreSQL verziju 8.3. Proširenje 'tablefunc' nudi funkciju unakrsne tablice, što omogućuje da zaokretne tablice budu skup rezultata. Navedimo primjer.







Prvo kreiramo tablicu 'rezultati' s tri stupca pomoću sljedeće naredbe:





Kreirana tablica je prazna. Dakle, samo naprijed i upotrijebite upit INSERT da biste mu dodali vrijednosti. U ovom slučaju umećemo nekoliko unosa kao što je prikazano u nastavku:





Ako pokrenemo naredbu “select”, dobit ćemo sljedeće rezultate. Imajte na umu kako ovaj zadani način dohvaćanja zapisa predstavlja u obliku tablice. Stupci se koriste kao zaglavlja, a njihove se vrijednosti pojavljuju u redovima:



Iako prethodni pristup funkcionira u većini slučajeva, postoji još jedna opcija za dohvaćanje istih zapisa. Za ovaj slučaj želimo stvoriti zaokretnu tablicu. Stoga koristimo proširenje 'tablefunc' koje dolazi s PostgreSQL verzijom 8.3+.


Dakle, stvorimo proširenje 'tablefunc' da ga omogućimo kada ga pozovemo u upitu. Izvršite sljedeću naredbu:

KREIRAJ PROŠIRENJE AKO NE POSTOJI tablefunc ;

Znat ćete da je ekstenzija uspješno omogućena nakon što dobijete izlaz poput onoga koji imamo na prethodnoj slici.

Za našu funkciju unakrsne tablice, napravimo tako da prvi stupac bude fakultet. Ispod njega su razni fakulteti koje imamo u našoj tablici. Pored stupca fakulteta, imamo druge stupce koji predstavljaju različite vrijednosti u stupcu kategorije naše tablice. Na kraju, za svaku kategoriju imamo broj učenika koji su postigli različite kategorije.

Za postizanje takve zaokretne tablice koristite sljedeću sintaksu:

IZABERI * IZ KROSSTABA ( 'SELECT stupac1 , stupac2 , stupac3 FROM table_name ORDER BY kriterija' )

KAO novo_ime ( stupac1 data_type , stupac2 data_type , stupac_n vrsta_podataka ) ;

Koristeći tablicu primjera koju smo izradili, naša naredba izgleda ovako:

Prije nego što vidimo rezultate, pogledajmo kako radi naredba modula crosstab. Prvo, izjava SELECT vraća tri stupca. Prvi stupac se tretira kao identifikator reda. U našem slučaju to je stupac “fakultet”. Drugi stupac, koji je stupac 'kategorija', predstavlja kategorije za zaokretnu tablicu. Na kraju, treći stupac sadrži vrijednosti za kategorije. U našem slučaju to je broj učenika u svakoj kategoriji.

Imajući to razumijevanje, nakon što pritisnemo tipku 'Enter', dobit ćemo zaokretnu tablicu kako slijedi:

Na temelju vraćene zaokretne tablice možemo vidjeti da funkcionira kao 2-D polje gdje je prvi stupac u naredbi SELECT prvi niz, a drugi stupac drugi niz u dimenziji. Treći stupac sadrži vrijednosti za druge elemente niza.

Zaključak

PostgreSQL unakrsna tablica dobra je za predstavljanje vrijednosti tablice kao stožerne tablice. Morate vratiti tri stupca u izjavi SELECT da biste koristili modul crosstab, a ovaj post dijeli praktičan primjer kako ga koristiti. Osim toga, objasnili smo kako modul crosstab radi u stvaranju zaokretne tablice koja koristi istu logiku kao 2-D niz.