Compressione di gruppi di righe (Visual Database Tools)Collapse Groups of Rows (Visual Database Tools)

È possibile creare un risultato di query in cui ogni riga di risultati corrisponda a un intero gruppo di righe dei dati originali.You can create a query result in which each result row corresponds to an entire group of rows from the original data. Quando si comprimono le righe, è necessario tenere presenti alcune considerazioni:When collapsing rows, there are several things to keep in mind:

  • È possibile eliminare le righe duplicate Alcune query possono creare set di risultati in cui sono presenti più righe identiche.You can eliminate duplicate rows Some queries can create result sets in which multiple identical rows appear. È possibile, ad esempio, creare un set di risultati in cui ogni riga contiene la città in cui risiede un autore e il nome dello stato a cui tale città appartiene. Se però in una città risiedono più autori, esisteranno numerose righe identiche.For example, you can create a result set in which each row contains the city and state name of a city containing an author – but if a city contains several authors, there will be several identical rows. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT city, state  
    FROM authors  
    

    Il set di risultati generato dalla query precedente non è molto utile.The result set generated by the preceding query is not very useful. Se in una città risiedono quattro autori, il set di risultati includerà quattro righe identiche.If a city contains four authors, the result set will include four identical rows. Poiché il set di risultati non contiene altre colonne oltre a quelle della città e dello stato, non è possibile distinguere le righe identiche l'una dall'altra.Since the result set does not include any columns other than city and state, there is no way to distinguish the identical rows from each other. Un modo per evitare le righe duplicate consiste nell'includere ulteriori colonne che possano rendere diverse le righe.One way to avoid such duplicate rows is to include additional columns that can make the rows different. Se ad esempio si include il nome dell'autore, ogni riga sarà diversa, a condizione che in una qualsiasi città non vivano due autori con lo stesso nome.For example, if you include author name, each row will be different (provided no two like-named authors live within any one city). Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT city, state, fname, minit, lname  
    FROM authors  
    

    La query precedente elimina il sintomo, ma non risolve realmente il problema.Of course, the preceding query eliminates the symptom, but does not really solve the problem. In altre parole, il set di risultati non contiene duplicati, ma non riguarda più in modo specifico le città.That is, the result set has no duplicates, but it is no longer a result set about cities. Per eliminare i duplicati nel set di risultati originale e fare in modo che ogni riga descriva una città, è possibile creare una query che restituisca soltanto righe distinte.To eliminate duplicates in the original result set, and still have each row describe a city, you can create a query returning only distinct rows. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT DISTINCT city, state  
    FROM authors  
    

    Per altre informazioni sull'eliminazione dei duplicati, vedere Escludere righe duplicate (Visual Database Tools).For details about eliminating duplicates, see Exclude Duplicate Rows (Visual Database Tools).

  • È possibile eseguire calcoli su gruppi di righe È possibile riepilogare le informazioni presenti in gruppi di righe.You can calculate on groups of rows That is, you can summarize information in groups of rows. È possibile, ad esempio, creare un set di risultati in cui ogni riga contiene la città in cui risiede un autore e il nome dello stato a cui tale città appartiene più un conteggio del numero di autori residenti nella città.For example, you can create a result set in which each row contains the city and state name of a city containing an author, plus a count of the number of authors contained in that city. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT city, state, COUNT(*)  
    FROM authors  
    GROUP BY city, state  
    

    Per informazioni dettagliate sull'esecuzione di calcoli su gruppi di righe, vedere Creare un riepilogo dei risultati di query (Visual Database Tools) e Ordinare e raggruppare i risultati delle query (Visual Database Tools).For details about calculating on groups of rows, see Summarize Query Results (Visual Database Tools) and Sort and Group Query Results (Visual Database Tools).

  • È possibile usare criteri di selezione per includere gruppi di righe È possibile, ad esempio, creare un set di risultati in cui ogni riga include la città di residenza di più autori e il nome dello stato a cui tale città appartiene, oltre a un conteggio del numero di autori residenti in tale città.You can use selection criteria to include groups of rows For example, you can create a result set in which each row contains the city and state name of a city containing several authors, plus a count of the number of authors contained in that city. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT city, state, COUNT(*)  
    FROM authors  
    GROUP BY city, state  
    HAVING COUNT(*) > 1  
    

    Per informazioni dettagliate sull'applicazione di criteri di selezione su gruppi di righe, vedere Definizione di condizioni per i gruppi (Visual Database Tools) e Utilizzo delle clausole HAVING e WHERE nella stessa query (Visual Database Tools).For details about applying selection criteria on groups of rows, see Specify Conditions for Groups (Visual Database Tools) and Use HAVING and WHERE Clauses in the Same Query (Visual Database Tools).

Vedere ancheSee Also

Specificare i criteri di ricerca (Visual Database Tools)Specify Search Criteria (Visual Database Tools)
Procedure per la progettazione di query e viste (Visual Database Tools)Design Queries and Views How-to Topics (Visual Database Tools)