Ako používať krížový modul PostrgreSQL

Ako Pouzivat Krizovy Modul Postrgresql



Keď spustíte príkaz SELECT na získanie záznamov z tabuľky PostgreSQL, údaje sa vrátia vo forme tabuľky. Tabuľková forma nemusí byť vždy najlepšia na čítanie údajov, najmä ak chcete porovnávať hodnoty. Lepší prístup je vrátiť záznamy ako krížovú tabuľku. PostgreSQL preto ponúka funkciu tablefunc, ktorá používateľom umožňuje využívať funkciu krížovej tabuľky na reprezentáciu cieľových údajov ako kontingenčnej tabuľky. Tento príspevok podrobnejšie vysvetľuje, ako používať funkciu krížovej tabuľky PostgreSQL. Pokračuj v čítaní!

Práca s modulom PostgreSQL Crosstab Module

Mať priestor na zadanie toho, ako chcete, aby boli vaše údaje reprezentované, je užitočné. S PostgreSQL, hoci predvoleným spôsobom je mať údaje v tabuľkovej forme, modul krížových tabuliek vám ponúka ďalšiu možnosť. Kontingenčné tabuľky môžete vytvoriť pomocou stĺpcov „vybrať“ z tabuľky PostgreSQL pre lepšiu prezentáciu.

Úžasná funkcia prichádza ako rozšírenie pre PostgreSQL verziu 8.3. Rozšírenie „tablefunc“ ponúka funkciu krížovej tabuľky, ktorá umožňuje mať kontingenčné tabuľky ako množinu výsledkov. Uveďme príklad.







Najprv vytvoríme tabuľku „výsledkov“ s tromi stĺpcami pomocou nasledujúceho príkazu:





Vytvorená tabuľka je prázdna. Pokračujte teda a použite dotaz INSERT na pridanie hodnôt. V tomto prípade vložíme niekoľko záznamov, ako je uvedené nižšie:





Ak spustíme príkaz „select“, dostaneme nasledujúce výsledky. Všimnite si, ako tento predvolený spôsob získavania záznamov prezentuje tieto záznamy vo forme tabuľky. Stĺpce sa používajú ako hlavičky a ich príslušné hodnoty sa zobrazujú v riadkoch:



Hoci predchádzajúci prístup funguje vo väčšine prípadov, existuje ďalšia možnosť na získanie rovnakých záznamov. Pre tento prípad chceme vytvoriť kontingenčnú tabuľku. Preto používame rozšírenie „tablefunc“, ktoré je súčasťou PostgreSQL verzie 8.3+.


Poďme teda vytvoriť rozšírenie „tablefunc“, aby sme ho povolili, keď ho zavoláme v dotaze. Vykonajte nasledujúci príkaz:

VYTVORIŤ ROZŠÍRENIE, AK NEEXISTUJE tablefunc ;

Budete vedieť, že rozšírenie bolo úspešne povolené, keď získate výstup podobný tomu, ktorý máme na predchádzajúcom obrázku.

Pre našu funkciu krížovej tabuľky to urobme tak, že prvý stĺpec je fakulta. Pod ním sú rôzne fakulty, ktoré máme v našej tabuľke. Vedľa stĺpca fakulty máme ďalšie stĺpce, ktoré predstavujú rôzne hodnoty v stĺpci kategórie našej tabuľky. Nakoniec pre každú kategóriu máme počet študentov, ktorí dosiahli rôzne kategórie.

Na dosiahnutie takejto kontingenčnej tabuľky použite nasledujúcu syntax:

VYBRAŤ * OD CROSTABU ( „VYBRAŤ stĺpec1 , stĺpec2 , stĺpec3 FROM názov_tabulky ORDER BY kritériaa' )

AS nove_meno ( stĺpec1 typ_údajov , column2 data_type , column_n data_type ) ;

Pomocou vzorovej tabuľky, ktorú sme vytvorili, vyzerá náš príkaz takto:

Skôr ako uvidíme výsledky, poďme si rozpísať, ako funguje príkaz modulu krížovej tabuľky. Po prvé, príkaz SELECT vráti tri stĺpce. Prvý stĺpec sa považuje za identifikátor riadku. V našom prípade je to kolónka „fakulta“. Druhý stĺpec, ktorý je stĺpcom „kategória“, predstavuje kategórie pre kontingenčnú tabuľku. Nakoniec, tretí stĺpec obsahuje hodnoty pre kategórie. V našom prípade je to počet žiakov v jednotlivých kategóriách.

Po tomto porozumení akonáhle stlačíme kláves „Enter“, dostaneme kontingenčnú tabuľku nasledovne:

Na základe vrátenej kontingenčnej tabuľky môžeme vidieť, že funguje ako 2-D pole, kde prvý stĺpec v príkaze SELECT je prvé pole a druhý stĺpec je druhé pole v dimenzii. Tretí stĺpec obsahuje hodnoty pre druhé prvky poľa.

Záver

Krížová tabuľka PostgreSQL je dobrá na reprezentáciu hodnôt tabuľky ako kontingenčnej tabuľky. Ak chcete použiť modul krížovej tabuľky, musíte vo svojom príkaze SELECT vrátiť tri stĺpce a tento príspevok zdieľa praktický príklad, ako ho používať. Okrem toho sme vysvetlili, ako modul krížovej tabuľky funguje pri vytváraní kontingenčnej tabuľky, ktorá používa rovnakú logiku ako 2-D pole.