Procedura: raggruppare righe nei risultati di una query
Se si desidera creare dei subtotali o visualizzare altre informazioni riepilogative per i sottoinsiemi di una tabella, è possibile utilizzare una query di aggregazione.Ciascun gruppo creato riepiloga i dati per tutte le righe della tabella con lo stesso valore.
Può essere necessario, ad esempio, visualizzare il prezzo medio di un libro nella tabella titles, suddividendo i risultati in base all'editore.Per ottenere questo risultato, è necessario raggruppare la query in base all'editore (ad esempio, pub_id).L'output della query potrebbe essere analogo al seguente:
Quando si raggruppano i dati, è possibile visualizzare solo dati riepilogativi o raggruppati, ad esempio:
I valori delle colonne raggruppate (quelli che compaiono nella clausola GROUP BY).Nell'esempio precedente, pub_id è la colonna raggruppata.
I valori prodotti da funzioni di aggregazione quali SUM( ) e AVG( ).Nell'esempio precedente, la seconda colonna viene generata utilizzando la funzione AVG( ) con la colonna price.
Non è possibile visualizzare valori di singole righe.Se ad esempio si effettua il raggruppamento solo in base all'editore, non sarà possibile visualizzare anche singoli titoli nella query.Se pertanto si aggiungono colonne all'output della query, in Progettazione query e Progettazione visualizzazioni queste verranno aggiunte automaticamente alla clausola GROUP BY dell'istruzione nel riquadro SQL.Se invece si desidera che sia la colonna ad essere aggregata, sarà possibile specificare una funzione di aggregazione per tale colonna.
Se si definisce un raggruppamento in base a più colonne, in ogni gruppo della query verranno visualizzati i valori aggregati per tutte le colonne raggruppate.
Nella seguente query, ad esempio, effettuata sulla tabella titles il raggruppamento viene effettuato in base all'editore (pub_id) e al tipo di libro (type).I risultati della query vengono ordinati in base all'editore e mostrano informazioni di riepilogo su ogni tipo di libro prodotto dall'editore:
SELECT pub_id, type, SUM(price) Total_price
FROM titles
GROUP BY pub_id, type
L'output risultante può essere analogo al seguente:
[!NOTA]
Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.
Per raggruppare le righe
Iniziare la query aggiungendo le tabelle da riepilogare nel riquadro Diagramma.
Fare clic con il pulsante destro del mouse sullo sfondo del riquadro Diagramma, quindi scegliere Aggiungi raggruppamento dal menu di scelta rapida.Verrà aggiunta una colonna Raggruppa alla griglia nel riquadro Criteri.
Aggiungere al riquadro Criteri la colonna o la combinazione di colonne da raggruppare.Per visualizzare la colonna nell'output della query, assicurarsi che la colonna Output sia selezionata per l'output.
In Progettazione query e Progettazione visualizzazioni sarà aggiunta una clausola GROUP BY all'istruzione nel riquadro SQL.L'istruzione SQL, ad esempio, può essere analoga alla seguente:
SELECT pub_id FROM titles GROUP BY pub_id
Aggiungere al riquadro Criteri la colonna o la combinazione di colonne da aggregare.Assicurarsi che la colonna sia contrassegnata per l'output.
Nella cella della griglia Raggruppa per la colonna da aggregare, selezionare la funzione di aggregazione appropriata.
Verrà assegnato automaticamente un alias di colonna alla colonna di cui si effettua il riepilogo.Tale alias generato automaticamente può essere sostituito con un alias più significativo.Per informazioni dettagliate, vedere Procedura: creare alias di colonna.
L'istruzione corrispondente nel riquadro SQL può essere analoga alla seguente:
SELECT pub_id, SUM(price) AS Totalprice FROM titles GROUP BY pub_id