Kā lietot PostrgreSQL Crosstab moduli

Ka Lietot Postrgresql Crosstab Moduli



Palaižot SELECT priekšrakstu, lai izgūtu ierakstus no PostgreSQL tabulas, dati tiek atgriezti tabulas veidā. Tabulas forma ne vienmēr var būt vislabākā datu lasīšanai, it īpaši, ja vēlaties salīdzināt vērtības. Labāka pieeja ir atgriezt ierakstus kā krustojumu. Šim nolūkam PostgreSQL piedāvā tablefunc, lai ļautu lietotājiem izmantot crosstab funkciju, lai attēlotu mērķa datus kā rakurstabulu. Šajā ziņojumā ir sīkāk aprakstīts, kā izmantot PostgreSQL krustojuma funkciju. Turpini lasīt!

Darbs ar PostgreSQL Crosstab moduli

Ir ērta vieta, kur norādīt, kā vēlaties attēlot savus datus. Izmantojot PostgreSQL, lai gan noklusējuma veids ir datu iegūšana tabulas veidā, šķērstabiņu modulis sniedz vēl vienu iespēju. Rakurstabulas varat izveidot, izmantojot PostgreSQL tabulas kolonnas “select”, lai nodrošinātu labāku prezentāciju.

Pārsteidzošā funkcija ir PostgreSQL versijas 8.3 paplašinājums. Paplašinājums “tablefunc” piedāvā krusteniskās tabulas funkciju, kas ļauj izmantot rakurstabulas kā rezultātu kopu. Sniegsim piemēru.







Pirmkārt, mēs izveidojam “rezultātu” tabulu ar trim kolonnām, izmantojot šādu komandu:





Izveidotā tabula ir tukša. Tādējādi turpiniet un izmantojiet vaicājumu INSERT, lai pievienotu tam vērtības. Šajā gadījumā mēs ievietojam dažus ierakstus, kā parādīts tālāk.





Ja izpildām paziņojumu “select”, mēs iegūstam šādus rezultātus. Ņemiet vērā, kā šis noklusējuma ierakstu izguves veids tos parāda tabulas veidā. Kolonnas tiek izmantotas kā galvenes, un to attiecīgās vērtības tiek rādītas rindās:



Lai gan iepriekšējā pieeja darbojas vairumā gadījumu, ir arī cita iespēja izgūt tos pašus ierakstus. Šajā gadījumā mēs vēlamies izveidot rakurstabulu. Tāpēc mēs izmantojam paplašinājumu “tablefunc”, kas tiek piegādāts kopā ar PostgreSQL versiju 8.3+.


Tātad, izveidosim “tablefunc” paplašinājumu, lai to iespējotu, kad mēs to izsaucam vaicājumā. Izpildiet šādu komandu:

IZVEIDOT PAPLAŠINĀJUMU, JA NAV tablefunc ;

Jūs zināt, ka paplašinājums ir veiksmīgi iespējots, tiklīdz saņemsiet tādu izvadi kā iepriekšējā attēlā.

Mūsu krustojuma funkcijai izveidosim tā, lai pirmajā kolonnā būtu fakultāte. Zem tā ir dažādas mūsu tabulā esošās fakultātes. Blakus fakultātes kolonnai ir citas kolonnas, kas atspoguļo dažādas vērtības mūsu tabulas kategoriju kolonnā. Visbeidzot, katrā kategorijā mums ir studentu skaits, kuri sasnieguši dažādas kategorijas.

Lai izveidotu šādu rakurstabulu, izmantojiet šādu sintaksi:

ATLASĪT * NO CROSSTAB ( 'Izvēlēties kolonnu1 , kolonna 2 , kolonna 3 NO tabulas_nosaukums ORDER BY kritēriji' )

AS jaunais_nosaukums ( kolonna 1 datu_veids , kolonnas 2 datu_veids , kolonnas_n datu_veids ) ;

Izmantojot mūsu izveidoto tabulas piemēru, mūsu komanda izskatās šādi:

Pirms mēs redzam rezultātus, apskatīsim Crosstab moduļa komandas darbību. Pirmkārt, priekšraksts SELECT atgriež trīs kolonnas. Pirmā kolonna tiek uzskatīta par rindas identifikatoru. Mūsu gadījumā tā ir sleja “fakultāte”. Otrajā kolonnā, kas ir sleja “kategorija”, ir norādītas rakurstabulas kategorijas. Visbeidzot, trešajā kolonnā ir norādītas kategoriju vērtības. Mūsu gadījumā tas ir skolēnu skaits katrā kategorijā.

Ņemot to vērā, nospiežot taustiņu “Enter”, mēs iegūstam rakurstabulu šādi:

Pamatojoties uz atgriezto rakurstabulu, mēs redzam, ka tā darbojas kā 2-D masīvs, kur SELECT priekšraksta pirmā kolonna ir pirmais masīvs, bet otrā kolonna ir otrais masīvs dimensijā. Trešajā kolonnā ir otrā masīva elementu vērtības.

Secinājums

PostgreSQL šķērstab ir piemērota, lai attēlotu tabulas vērtības kā rakurstabulu. Lai izmantotu krusteniskās tabulas moduli, SELECT priekšrakstā ir jāatgriež trīs kolonnas, un šajā ziņojumā ir sniegts praktisks piemērs, kā to izmantot. Turklāt mēs izskaidrojām, kā krusttabiņas modulis darbojas, veidojot rakurstabulu, kas izmanto to pašu loģiku kā 2-D masīvs.