Come utilizzare il modulo tabella incrociata PostrgreSQL

Come Utilizzare Il Modulo Tabella Incrociata Postrgresql



Quando esegui un'istruzione SELECT per recuperare i record da una tabella PostgreSQL, i dati vengono restituiti in formato tabellare. La forma tabellare potrebbe non essere sempre la migliore per leggere i dati, soprattutto quando si vogliono confrontare i valori. Un approccio migliore consiste nel restituire i record come tabella a campi incrociati. Per questo, PostgreSQL offre la funzione tablefunc per consentire agli utenti di utilizzare la funzione tabella incrociata per rappresentare i dati di destinazione come una tabella pivot. Questo post approfondisce ulteriormente come utilizzare la funzione tabella incrociata PostgreSQL. Continuare a leggere!

Lavorare con il modulo tabella incrociata PostgreSQL

Avere una stanza per specificare come vuoi che i tuoi dati siano rappresentati è utile. Con PostgreSQL, sebbene la modalità predefinita sia avere i dati in formato tabellare, il modulo tabella incrociata offre un'altra opzione. Puoi creare le tabelle pivot utilizzando le colonne 'seleziona' da una tabella PostgreSQL per una migliore presentazione.

Questa straordinaria funzionalità è disponibile come estensione per PostgreSQL versione 8.3. L'estensione 'tablefunc' offre la funzione crosstab, rendendo possibile avere le tabelle pivot come set di risultati. Facciamo un esempio.







Per prima cosa creiamo la tabella “risultati” con tre colonne utilizzando il seguente comando:





La tabella creata è vuota. Pertanto, vai avanti e utilizza la query INSERT per aggiungervi i valori. In questo caso, inseriamo alcune voci come mostrato di seguito:





Se eseguiamo l'istruzione 'select', otteniamo i seguenti risultati. Nota come questo modo predefinito di recuperare i record li presenta in forma tabellare. Le colonne vengono utilizzate come intestazioni e i rispettivi valori vengono visualizzati nelle righe:



Sebbene l'approccio precedente funzioni nella maggior parte dei casi, esiste un'altra opzione per recuperare gli stessi record. In questo caso, vogliamo creare una tabella pivot. Pertanto, utilizziamo l'estensione 'tablefunc' fornita con PostgreSQL versione 8.3+.


Quindi, creiamo un'estensione 'tablefunc' per abilitarla quando la chiamiamo nella query. Esegui il seguente comando:

CREA ESTENSIONE SE NON ESISTE tablefunc ;

Saprai che l'estensione è stata abilitata con successo una volta ottenuto un output come quello che abbiamo nell'immagine precedente.

Per la nostra funzione di tabella incrociata, facciamo in modo che la prima colonna sia la facoltà. Di seguito sono riportate le varie facoltà che abbiamo nella nostra tabella. Accanto alla colonna facoltà, abbiamo altre colonne che rappresentano i diversi valori nella colonna categoria della nostra tabella. Infine, per ciascuna categoria, abbiamo il numero di studenti che hanno conseguito le diverse categorie.

Per ottenere una tabella pivot di questo tipo, utilizzare la seguente sintassi:

SELEZIONARE * DALLA CROCETAB ( 'SELEZIONA colonna1 , colonna2 , colonna3 DA nome_tabella ORDINA PER criteria' )

AS nuovo_nome ( tipo_dati colonna1 , tipo_dati colonna2 , colonna_n tipo_dati ) ;

Utilizzando la tabella di esempio che abbiamo creato, il nostro comando appare come segue:

Prima di vedere i risultati, diamo un'analisi dettagliata del funzionamento del comando del modulo tabella incrociata. Innanzitutto, l'istruzione SELECT restituisce tre colonne. La prima colonna viene trattata come identificatore di riga. Nel nostro caso si tratta della colonna “facoltà”. La seconda colonna, che è la colonna 'categoria', rappresenta le categorie per la tabella pivot. Infine, la terza colonna contiene i valori per le categorie. Nel nostro caso, è il numero di studenti in ciascuna categoria.

Avendo questa comprensione, una volta premuto il tasto 'Invio', otteniamo la tabella pivot come segue:

In base alla tabella pivot restituita, possiamo vedere che funziona come un array 2D in cui la prima colonna nell'istruzione SELECT è la prima matrice e la seconda colonna è la seconda matrice nella dimensione. La terza colonna contiene i valori per i secondi elementi dell'array.

Conclusione

La tabella incrociata PostgreSQL è utile per rappresentare i valori della tabella come tabella pivot. È necessario restituire tre colonne nell'istruzione SELECT per utilizzare il modulo tabella incrociata e questo post ha condiviso un esempio pratico su come utilizzarlo. Inoltre, abbiamo spiegato come funziona il modulo tabella incrociata nella creazione della tabella pivot che utilizza la stessa logica di un array 2D.