Condividi tramite


Comprimere gruppi di righe (Visual Database Tools)

si applica a:SQL Server

È possibile creare un risultato della query in cui ogni riga di risultato corrisponde a un intero gruppo di righe dai dati originali. Quando si comprimono le righe, ci sono diverse cose da tenere a mente:

  • È possibile eliminare le righe duplicate Alcune query possono creare set di risultati in cui vengono visualizzate più righe identiche. Ad esempio, è possibile creare un set di risultati in cui ogni riga contiene la città e il nome dello stato di una città contenente un autore, ma se una città contiene diversi autori, sono presenti diverse righe identiche. Il codice SQL risultante potrebbe essere simile al seguente:

    SELECT city,
           state
    FROM authors;
    

    Il set di risultati generato dalla query precedente non è molto utile. Se una città contiene quattro autori, il set di risultati include quattro righe identiche. Poiché il set di risultati non include colonne diverse da città e stato, non è possibile distinguere le righe identiche l'una dall'altra. Un modo per evitare tali righe duplicate consiste nell'includere colonne aggiuntive che possono rendere diverse le righe. Ad esempio, se si include il nome dell'autore, ogni riga è diversa (a condizione che non vi siano due autori con nome simile a uno all'interno di una città). Il codice SQL risultante potrebbe essere simile al seguente:

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

    Naturalmente, la query precedente elimina il sintomo, ma non risolve effettivamente il problema. Ovvero, il set di risultati non ha duplicati, ma non è più un set di risultati sulle città. Per eliminare i duplicati nel set di risultati originale e avere comunque ogni riga descrive una città, è possibile creare una query che restituisca solo righe distinte. Il codice SQL risultante potrebbe essere simile al seguente:

    SELECT DISTINCT city,
                    state
    FROM authors;
    

    Per informazioni dettagliate sull'eliminazione dei duplicati, vedere Escludere righe duplicate.

  • È possibile calcolare in base a gruppi di righe ovvero è possibile riepilogare le informazioni in gruppi di righe. Ad esempio, è possibile creare un set di risultati in cui ogni riga contiene la città e il nome dello stato di una città contenente un autore, oltre a un conteggio del numero di autori contenuti in tale città. Il codice SQL risultante potrebbe essere simile al seguente:

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

    Per informazioni dettagliate sul calcolo di gruppi di righe, vedere Riepilogare i risultati delle query e Ordinare e raggruppare i risultati delle query.

  • È possibile usare i criteri di selezione per includere gruppi di righe Ad esempio, è possibile creare un set di risultati in cui ogni riga contiene la città e il nome dello stato di una città contenente diversi autori, oltre a un conteggio del numero di autori contenuti in tale città. Il codice SQL risultante potrebbe essere simile al seguente:

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

    Per informazioni dettagliate sull'applicazione dei criteri di selezione in gruppi di righe, vedere Specificare le condizioni per i gruppi e Usare clausole HAVING e WHERE nella stessa query.