Sådan bruges PostrgreSQL Crosstab-modulet

Sadan Bruges Postrgresql Crosstab Modulet



Når du kører en SELECT-sætning for at hente posterne fra en PostgreSQL-tabel, returneres dataene i tabelform. Tabelformen er måske ikke altid den bedste til at læse dataene, især når du vil sammenligne værdierne. En bedre tilgang er at returnere posterne som en krydstabel. Til det tilbyder PostgreSQL tablefunc for at give brugerne mulighed for at bruge krydstabulatorfunktionen til at repræsentere måldataene som en pivottabel. Dette indlæg uddyber mere om, hvordan man bruger PostgreSQL krydstabulatorfunktionen. Læs videre!

Arbejde med PostgreSQL Crosstab-modulet

Det er praktisk at have et rum til at specificere, hvordan du vil have dine data repræsenteret. Med PostgreSQL, selvom standardmåden er at have dataene i tabelform, giver krydstabuleringsmodulet dig en anden mulighed. Du kan oprette pivottabellerne ved at bruge 'vælg'-kolonnerne fra en PostgreSQL-tabel for en bedre præsentation.

Den fantastiske funktion kommer som en udvidelse til PostgreSQL version 8.3. 'Tablefunc'-udvidelsen tilbyder krydstabulatorfunktionen, hvilket gør det muligt at have pivottabellerne som dit resultatsæt. Lad os give et eksempel.







Først opretter vi 'resultattabellen' med tre kolonner ved hjælp af følgende kommando:





Den oprettede tabel er tom. Gå derfor videre og brug INSERT-forespørgslen til at tilføje værdierne til den. I dette tilfælde indsætter vi nogle få poster som vist i følgende:





Hvis vi kører 'select'-sætningen, får vi følgende resultater. Bemærk, hvordan denne standard måde at hente posterne på præsenterer dem i tabelform. Kolonnerne bruges som overskrifter, og deres respektive værdier vises i rækkerne:



Selvom den tidligere tilgang virker i de fleste tilfælde, er der en anden mulighed for at hente de samme poster. Til dette tilfælde ønsker vi at oprette en pivottabel. Derfor bruger vi 'tablefunc'-udvidelsen, der følger med PostgreSQL version 8.3+.


Så lad os oprette en 'tablefunc'-udvidelse for at aktivere den, når vi kalder den i forespørgslen. Udfør følgende kommando:

OPRET UDVIDELSE HVIS IKKE FINDER tablefunc ;

Du vil vide, at udvidelsen er blevet aktiveret, når du får et output som det, vi har på det forrige billede.

For vores krydstabuleringsfunktion, lad os gøre det sådan, at den første kolonne er fakultetet. Nedenfor er de forskellige fakulteter, som vi har i vores tabel. Ved siden af ​​fakultetskolonnen har vi andre kolonner, der repræsenterer de forskellige værdier i kategorikolonnen i vores tabel. Til sidst har vi for hver kategori antallet af elever, der nåede de forskellige kategorier.

For at opnå en sådan pivottabel skal du bruge følgende syntaks:

VÆLG * FRA CROSSTAB ( 'VÆLG kolonne1 , kolonne 2 , kolonne 3 FRA tabelnavn ORDER BY criteriaa' )

SOM nyt_navn ( kolonne1 datatype , kolonne 2 datatype , kolonne_n datatype ) ;

Ved at bruge den eksempeltabel, vi oprettede, ser vores kommando ud som følger:

Før vi ser resultaterne, lad os få en oversigt over, hvordan krydstabsmodulkommandoen fungerer. Først returnerer SELECT-sætningen tre kolonner. Den første kolonne behandles som række-id. I vores tilfælde er det kolonnen 'fakultet'. Den anden kolonne, som er kolonnen 'kategori', repræsenterer kategorierne for pivottabellen. Til sidst indeholder den tredje kolonne værdierne for kategorierne. I vores tilfælde er det antallet af elever i hver kategori.

Når vi har den forståelse, når vi trykker på 'Enter'-tasten, får vi pivottabellen som følger:

Baseret på den returnerede pivottabel kan vi se, at den fungerer som et 2-D-array, hvor den første kolonne i SELECT-sætningen er den første matrix, og den anden kolonne er den anden matrix i dimensionen. Den tredje kolonne indeholder værdierne for det andet array-elementer.

Konklusion

PostgreSQL krydstabellen er god til at repræsentere tabelværdierne som en pivottabel. Du skal returnere tre kolonner i din SELECT-sætning for at bruge krydstabulatormodulet, og dette indlæg har delt et praktisk eksempel på, hvordan du bruger det. Desuden forklarede vi, hvordan krydstabelmodulet fungerer ved at skabe pivottabellen, der bruger den samme logik som et 2-D-array.