Raggruppare righe nei risultati di una query (Visual Database Tools)Group Rows in Query Results (Visual Database Tools)

Se si desidera creare dei subtotali o visualizzare altre informazioni riepilogative per i subset di una tabella, è possibile utilizzare una query di aggregazione.If you want to create subtotals or show other summary information for subsets of a table, you create groups using an aggregate query. Ciascun gruppo creato riepiloga i dati per tutte le righe della tabella con lo stesso valore.Each group summarizes the data for all the rows in the table that have the same value.

Può essere necessario, ad esempio, visualizzare il prezzo medio di un libro nella tabella titles , suddividendo i risultati in base all'editore.For example, you might want to see the average price of a book in the titles table, but break the results down by publisher. Per ottenere questo risultato, è necessario raggruppare la query in base all'editore (ad esempio, pub_id).To do so, you group the query by publisher (for example, pub_id). L'output della query potrebbe essere analogo al seguente:The resulting query output might look like this:

Risultati della query: prezzo medio raggruppato per server di pubblicazioneQuery results: average price grouped by publisher

Quando si raggruppano i dati, è possibile visualizzare solo dati riepilogativi o raggruppati, ad esempio:When you group data, you can display only summary or grouped data, such as:

  • I valori delle colonne raggruppate (quelli che compaiono nella clausola GROUP BY).The values of the grouped columns (those that appear in the GROUP BY clause). Nell'esempio precedente, pub_id è la colonna raggruppata.In the example above, pub_id is the grouped column.

  • I valori prodotti da funzioni di aggregazione quali SUM( ) e AVG( ).Values produced by aggregate functions such as SUM( ) and AVG( ). Nell'esempio precedente, la seconda colonna viene generata usando la funzione AVG( ) con la colonna price .In the example above, the second column is produced by using the AVG( ) function with the price column.

Non è possibile visualizzare valori di singole righe.You cannot display values from individual rows. Se ad esempio si effettua il raggruppamento solo in base all'editore, non sarà possibile visualizzare anche singoli titoli nella query.For example, if you group only by publisher, you cannot also display individual titles in the query. Quindi, se si aggiungono colonne all'output della query, in Progettazione query e Progettazione viste queste verranno aggiunte automaticamente alla clausola GROUP BY dell'istruzione nel riquadro SQL.Therefore, if you add columns to the query output, the Query and View Designer automatically adds them to the GROUP BY clause of the statement in the SQL pane. Se invece si desidera che sia la colonna ad essere aggregata, sarà possibile specificare una funzione di aggregazione per tale colonna.If you want a column to be aggregated instead, you can specify an aggregate function for that column.

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.If you group by more than one column, each group in the query shows the aggregate values for all grouping columns.

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).For example, the following query against the titles table groups by publisher (pub_id) and also by book type (type). I risultati della query vengono ordinati in base all'editore e mostrano informazioni di riepilogo su ogni tipo di libro prodotto dall'editore:The query results are ordered by publisher and show summary information for each different type of book that the publisher produces:

SELECT pub_id, type, SUM(price) Total_price  
FROM titles  
GROUP BY pub_id, type  

L'output risultante può essere analogo al seguente:The resulting output might look like this:

Risultati della query: prezzo raggruppato per server di pubblicazione e tipoQuery results: price grouped by publisher and type

Per raggruppare le righeTo group rows

  1. Iniziare la query aggiungendo le tabelle da riepilogare nel riquadro Diagramma.Start the query by adding the tables you want to summarize to the Diagram pane.

  2. Fare clic con il pulsante destro del mouse sullo sfondo del riquadro Diagramma, quindi scegliere Aggiungi raggruppamento dal menu di scelta rapida.Right-click the background of the Diagram pane, then choose Add Group By from the shortcut menu. In Progettazione query e Progettazione viste verrà aggiunta una colonna Group By alla griglia nel riquadro Criteri.The Query and View Designer adds a Group By column to the grid in the Criteria pane.

  3. Aggiungere al riquadro Criteri la colonna o la combinazione di colonne da raggruppare.Add the column or columns you want to group to the Criteria pane. Per visualizzare la colonna nell'output della query, assicurarsi che la colonna Output sia selezionata per l'output.If you want the column to appear in the query output, be sure that the Output column is selected for output.

    In Progettazione query e Progettazione viste sarà aggiunta una clausola GROUP BY all'istruzione nel riquadro SQL.The Query and View Designer adds a GROUP BY clause to the statement in the SQL pane. L'istruzione SQL, ad esempio, può essere analoga alla seguente:For example, the SQL statement might look like this:

    SELECT pub_id  
    FROM titles  
    GROUP BY pub_id  
    
  4. Aggiungere al riquadro Criteri la colonna o la combinazione di colonne da aggregare.Add the column or columns you want to aggregate to the Criteria pane. Assicurarsi che la colonna sia contrassegnata per l'output.Be sure that the column is marked for output.

  5. Nella cella della griglia Group By per la colonna da aggregare, selezionare la funzione di aggregazione appropriata.In the Group By grid cell for the column that is going to be aggregated, select the appropriate aggregate function.

    Verrà assegnato automaticamente un alias di colonna alla colonna di cui si effettua il riepilogo.The Query and View Designer automatically assigns a column alias to the column you are summarizing. Tale alias generato automaticamente può essere sostituito con un alias più significativo.You can replace this automatically generated alias with a more meaningful one. Per altre informazioni dettagliate, vedere Creazione di alias di colonna (Visual Database Tools).For more details, see Create Column Aliases (Visual Database Tools).

    Aggiunta di un alias di colonna al set di risultati della queryAdding a column alias to the query result set

    L'istruzione corrispondente nel riquadro SQL può essere analoga alla seguente:The corresponding statement in the SQL pane might look like this:

    SELECT   pub_id, SUM(price) AS Totalprice  
    FROM     titles  
    GROUP BY pub_id  
    

Vedere ancheSee Also

Ordinare e raggruppare i risultati delle query (Visual Database Tools)Sort and Group Query Results (Visual Database Tools)