Come utilizzare la funzione postgresql array_agg?

Come utilizzare la funzione postgresql array_agg?
Il metodo aggregato 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 l'ordine per frase. È inoltre possibile utilizzare la clausola dove richiesto.

Per comprendere il metodo Aggregate Array_AGG (), è necessario eseguire diversi esempi. A tale scopo, aprire la shell di comando postgresql. Se si desidera accendere l'altro server, fallo fornendo il suo nome. Altrimenti, lasciare lo spazio vuoto e premere il pulsante Invio per saltare sul database. Se si desidera utilizzare 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 Enter per continuare. Ti chiederà di aggiungere il nome utente se vuoi passare a un altro nome utente. Aggiungi il nome utente se vuoi, altrimenti, premi "Invio". Alla fine, devi fornire la password utente corrente, per iniziare a utilizzare la riga di comando utilizzando quel particolare utente come di seguito. Dopo voci riuscite di tutte le informazioni richieste, sei a posto.

Utilizzo di Array_AGG sulla colonna singola:

Considera la tabella "persona" nel database "test" con 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 * dalla persona;

A seconda della tabella aereo, dobbiamo applicare il metodo Array_AGG aggregato per restituire l'elenco di array di tutti i nomi della tabella tramite colonna "Nome". Con questo, è necessario utilizzare la funzione Array_AGG () nella query Seleziona per recuperare il risultato sotto forma di un array. Prova la query dichiarata nella shell del comando e ottieni il risultato. Come puoi vedere, abbiamo la colonna di output di seguito "array_agg" con nomi elencati in un array per la stessa query.

>> Seleziona array_agg (nome) dalla persona;

Utilizzo di Array_AGG su più colonne con ordine per clausola:

Esempio 01:

Applicazione della funzione Array_AGG a più colonne durante l'utilizzo dell'ordine per clausola, considerare la stessa tabella "persona" all'interno del database "Test" con tre colonne; "Id", "nome" e "età". In questo esempio, useremo il gruppo per clausola.

>> seleziona * dalla persona;

Abbiamo concaterato il risultato della query selezionata in un elenco di array mentre utilizzano le due colonne "nome" e "età". In questo esempio, abbiamo usato lo spazio come personaggio speciale che è stato utilizzato per concatenare entrambe queste colonne finora. D'altra parte, abbiamo preso la colonna "ID" separatamente. Il risultato dell'array concatenato verrà mostrato in una colonna "Personondata" in fase di esecuzione. Il set di risultati sarà raggruppato per la prima volta per "ID" della persona e ordinato in ordine crescente del campo "ID". Proviamo il comando seguente nella shell e vediamo tu stesso i risultati. Puoi vedere che abbiamo un array separato per ogni valore concatenato in età nell'immagine seguente.

>> Seleziona ID, Array_AGG (Nome || "|| Age) come personondata dal gruppo di persona per ID Order per ID;



Esempio 02:

Prendi in considerazione una tabella appena creata "dipendente" all'interno del database "test" con cinque colonne; "Id", "Nome", "Stipendio", "Age" e "Email". La tabella memorizza tutti i dati sui 5 dipendenti che lavorano in un'azienda. In questo esempio, useremo il carattere speciale '-' per concaterare due campi invece di usare lo spazio utilizzando il gruppo by e ordine per clausola.

>> Seleziona * dal dipendente;

Concateniamo i dati di due colonne, "nome" ed "e-mail" in un array durante l'utilizzo di '-' tra loro. Come prima, estraggiamo distintamente la colonna "id". I risultati della colonna concatenati verranno mostrati come "EMP" in fase di esecuzione. Il set di risultati sarà assemblato per la prima volta dal "ID" della persona e, successivamente, sarà organizzato in ordine crescente della colonna "ID". Proviamo un comando molto simile nella shell con piccole modifiche e vediamo le conseguenze. Dal risultato seguente, hai acquisito un array distinto per ogni valore concatenato email presentato nell'immagine mentre il segno '-' viene utilizzato in ogni valore.

>> Seleziona ID, Array_AGG (nome || '-' || e-mail) come EMP del gruppo di dipendenti per ID ordine per ID;

Utilizzo di Array_AGG su più colonne senza ordine per clausola:

Puoi anche provare il metodo Array_AGG su qualsiasi tabella senza usare l'ordine By e Group per clausola. Supponiamo che un "attore" di nuova tabella nel tuo vecchio database "test" abbia tre colonne; "Id", "fname" e "lname". La tabella contiene dati sui nomi e i cognomi dell'attore insieme ai loro ID.

>> seleziona * dall'attore;

Quindi, concatenare le due colonne "fname" e "lname" in un elenco di array mentre usi lo spazio tra loro, come hai fatto negli ultimi due esempi. Non abbiamo eliminato la colonna "id" distintamente e ha utilizzato la funzione Array_AGG all'interno della query Seleziona. La colonna concatenata dell'array risultante sarà presentata come "attori". Prova la query sotto dichiarata nella shell del comando e fai un'occhiata all'array risultante. Abbiamo recuperato un singolo array con valore concatenato con nome email presentato, separato da una virgola dal risultato.

Conclusione:

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