SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona Group_Concat() in SQLite

SQLite ha un group_concat() funzione che consente di concatenare più risultati restituiti per una colonna in uno.

Questo è talvolta indicato come "aggregazione di stringhe".

Ad esempio, quando si esegue una query su un database, invece di avere l'output del valore di ciascuna colonna in una nuova riga, è possibile utilizzare group_concat() per farli uscire come un elenco separato da virgole.

Sintassi

Puoi utilizzare questa funzione in uno dei seguenti modi:

group_concat(X)
group_concat(X,Y)

In altre parole, il group_concat() La funzione può essere utilizzata con uno o due argomenti.

Il secondo argomento specifica un carattere da utilizzare come separatore. Se non lo specifichi, una virgola (, ) verrà utilizzato come separatore.

Esempio con un argomento

Ecco un esempio di chiamata a group_concat() con un argomento.

SELECT group_concat(FirstName)
FROM Employee;

Risultato:

Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura

Se non ho usato group_concat() per concatenare questa colonna, i risultati sarebbero stati così:

SELECT FirstName
FROM Employee;

Risultato:

Andrew    
Nancy     
Jane      
Margaret  
Steve     
Michael   
Robert    
Laura    

Usa un separatore personalizzato

Come accennato, hai la possibilità di specificare quale carattere utilizzare come separatore.

Ecco un esempio di specifica del simbolo pipe (| ) come separatore.

SELECT group_concat(FirstName, '|')
FROM Employee;

Risultato:

Andrew|Nancy|Jane|Margaret|Steve|Michael|Robert|Laura

Eccone un altro che usa una virgola, ma aggiunge anche uno spazio a destra della virgola.

SELECT group_concat(FirstName, ', ')
FROM Employee;

Risultato:

Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura

Raggruppa i risultati

Puoi restituire più colonne e utilizzare il GROUP BY clausola per raggrupparli in modo appropriato.

Ecco un esempio.

SELECT ArtistId, group_concat(AlbumName) 
FROM Albums 
GROUP BY ArtistId LIMIT 10;

Risultato:

ArtistId  group_concat(AlbumName)                                                   
--------  --------------------------------------------------------------------------
1         Powerslave,Somewhere in Time,Piece of Mind,Killers,No Prayer for the Dying
2         Powerage                                                                  
3         All Night Wrong,The Sixteen Men of Tain                                   
4         Big Swing Face                                                            
5         Ziltoid the Omniscient,Casualties of Cool,Epicloud                        
6         Singing Down the Lane                                                     
7         Long Lost Suitcase,Praise and Blame,Along Came Jones                      
9         No Sound Without Silence                                                  
12        Blue Night,Eternity,Scandinavia