PostgreSQL

Come usare la funzione ARRAY_AGG di PostgreSQL?

Come usare la funzione ARRAY_AGG di PostgreSQL?
Il metodo di aggregazione ARRAY_AGG() è uno dei metodi utilizzati in PostgreSQL, che prende diversi valori di input e li concatena in un array, inclusi i valori NULL. Restituisce un array con ogni valore dal gruppo di input come parte. Per ordinare il set di risultati tramite la funzione PostgreSQL ARRAY_AGG, utilizzerai la frase ORDER BY. Puoi anche usare la clausola WHERE quando richiesto.

Per comprendere il metodo aggregato ARRAY_Agg(), devi eseguire diversi esempi. A questo scopo, apri la shell della riga di comando di PostgreSQL. Se vuoi accendere l'altro Server, fallo fornendo il suo nome. Altrimenti, lascia lo spazio vuoto e premi il pulsante Invio per saltare su Database. Se vuoi usare il database predefinito, e.g., Postgres, quindi lascialo così com'è e premi Invio; altrimenti, scrivi il nome di un database, e.g., "test", come mostrato nell'immagine qui sotto. Se vuoi usare un'altra porta, scrivila, altrimenti lasciala così com'è e tocca Invio per continuare. Ti chiederà di aggiungere il nome utente se vuoi passare a un altro nome utente. Aggiungi il nome utente se lo desideri, altrimenti premi "Invio". Alla fine, devi fornire la tua password utente corrente, per iniziare a utilizzare la riga di comando usando quel particolare utente come di seguito. Dopo aver inserito correttamente tutte le informazioni richieste, sei a posto.

Utilizzo di ARRAY_AGG su colonna singola:

Si consideri la tabella “persona” nel database “test” avente tre colonne; "id", "nome" e "età". La colonna “id” ha gli ID di tutte le persone. Mentre il campo 'nome' contiene i nomi delle persone e la colonna 'età' le età di tutte le persone.

>> SELEZIONA * DA persona;

A seconda della tabella sopraelevata, dobbiamo applicare il metodo aggregato ARRAY_AGG per restituire l'elenco di array di tutti i nomi della tabella tramite la colonna "nome". Con questo, devi usare la funzione ARRAY_AGG() nella query SELECT per recuperare il risultato sotto forma di array. Prova la query indicata nella shell dei comandi e ottieni il risultato. Come puoi vedere, abbiamo la seguente colonna di output "array_agg" con i nomi elencati in un array per la stessa query.

>> SELECT ARRAY_AGG(nome) FROM persona;

Utilizzo di ARRAY_AGG su più colonne con clausola ORDER BY:

Esempio 01:

Applicando la funzione ARRAY_AGG a più colonne mentre si utilizza la clausola ORDER BY, si consideri la stessa tabella "persona" all'interno del database "test" avente tre colonne; "id", "nome" e "età". In questo esempio, utilizzeremo la clausola GROUP BY.

>> SELEZIONA * DA persona;

Abbiamo concatenato il risultato della query SELECT in un elenco di array utilizzando le due colonne "nome" e "età". In questo esempio, abbiamo utilizzato lo spazio come carattere speciale che è stato utilizzato finora per concatenare entrambe queste colonne. D'altra parte, abbiamo recuperato la colonna "id" separatamente. Il risultato dell'array concatenato verrà mostrato in una colonna "persondata" in fase di esecuzione. Il set di risultati verrà prima raggruppato per "id" della persona e ordinato in ordine crescente del campo "id". Proviamo il comando seguente nella shell e vediamo i risultati da soli. Puoi vedere che abbiamo un array separato per ogni valore concatenato nome-età nell'immagine qui sotto.

>> SELECT id, ARRAY_AGG (nome ||"|| età) as persondata FROM persona GROUP BY id ORDER BY id;



Esempio 02:

Si consideri una tabella "Impiegato" appena creata all'interno del database "test" con cinque colonne; "id", "nome", "stipendio", "età" e "e-mail". La tabella memorizza tutti i dati sui 5 dipendenti che lavorano in un'azienda. In questo esempio, utilizzeremo il carattere speciale '-' per concatenare due campi invece di utilizzare lo spazio utilizzando le clausole GROUP BY e ORDER BY.

>> SELEZIONA * DA Dipendente;

Concateniamo i dati di due colonne, "nome" ed "e-mail" in un array usando '-' tra di loro. Come prima, estraiamo distintamente la colonna "id". I risultati della colonna concatenata verranno visualizzati come "emp" in fase di esecuzione. Il set di risultati verrà prima assemblato dall'"id" della persona e, successivamente, sarà organizzato in ordine crescente di colonna "id". Proviamo un comando molto simile nella shell con piccole modifiche e vediamo le conseguenze. Dal risultato sottostante, hai acquisito un array distinto per ogni valore concatenato nome-email presentato nell'immagine mentre il segno '-' viene utilizzato in ogni valore.

>> SELECT id, ARRAY_AGG (nome || '-' || email) AS emp FROM Impiegato GROUP BY ID ORDER BY id;

Utilizzo di ARRAY_AGG su più colonne senza clausola ORDER BY:

Puoi anche provare il metodo ARRAY_AGG su qualsiasi tabella senza utilizzare le clausole ORDER BY e GROUP BY. Assumi una tabella "attore" appena creata nel tuo vecchio database "test" con tre colonne; “id”, “fname” e “lname”. La tabella contiene i dati sui nomi e cognomi degli attori insieme ai loro ID.

>> SELEZIONA * DA attore;

Quindi, concatena le due colonne "fname" e "lname" in un elenco di array usando lo spazio tra di loro, come hai fatto negli ultimi due esempi. Non abbiamo eliminato distintamente la colonna "id" e abbiamo utilizzato la funzione ARRAY_AGG all'interno della query SELECT. La colonna concatenata dell'array risultante verrà presentata come "attori". Prova la query indicata di seguito nella shell dei comandi e dai un'occhiata all'array risultante. Abbiamo recuperato un singolo array con il valore concatenato nome-e-mail presentato, separato da una virgola dal risultato.

Conclusione:

Infine, hai quasi finito di eseguire la maggior parte degli esempi necessari per comprendere il metodo di aggregazione ARRAY_AGG. Provane di più alla fine per una migliore comprensione e conoscenza.

Installa l'ultimo gioco di strategia OpenRA su Ubuntu Linux
OpenRA è un motore di gioco di strategia in tempo reale gratuito/libero che ricrea i primi giochi di Westwood come il classico Command & Conquer: Red ...
Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...
Come utilizzare GameConqueror Cheat Engine in Linux
L'articolo copre una guida sull'utilizzo del motore cheat GameConqueror in Linux. Molti utenti che giocano su Windows utilizzano spesso l'applicazione...