Compressione di gruppi di righe
È possibile creare un risultato di query in cui ogni riga di risultati corrisponda a un intero gruppo di righe dei dati originali.Quando si comprimono le righe, è necessario tenere presenti alcune considerazioni:
È possibile eliminare le righe duplicate Alcune query possono creare gruppi di risultati in cui sono presenti più righe identiche.È possibile, ad esempio, creare un gruppo 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.Il codice SQL risultante potrebbe essere simile al seguente:
SELECT city, state FROM authors
Il gruppo di risultati generato dalla query precedente non è molto utile.Se in una città risiedono quattro autori, il gruppo di risultati includerà quattro righe identiche.Poiché il gruppo di risultati non contiene altre colonne oltre a quelle della città e dello stato, non è possibile distinguere le righe identiche l'una dall'altra.Un modo per evitare le righe duplicate consiste nell'includere ulteriori colonne che possano rendere diverse le righe.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.Il codice SQL risultante potrebbe essere simile al seguente:
SELECT city, state, fname, minit, lname FROM authors
La query precedente elimina il sintomo, ma non risolve realmente il problema.In altre parole, il gruppo di risultati non contiene duplicati, ma non riguarda più in modo specifico le città.Per eliminare i duplicati nel gruppo di risultati originale e fare in modo che ogni riga descriva una città, è possibile creare una query che restituisca soltanto 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 Procedura: escludere righe duplicate.
È possibile eseguire calcoli su gruppi di righe È possibile riepilogare le informazioni presenti in gruppi di righe.È possibile, ad esempio, creare un gruppo 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à.Il codice SQL risultante potrebbe essere simile al seguente:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state
Per informazioni dettagliate sull'esecuzione di calcoli su gruppi di righe, vedere Riepilogo dei risultati delle query e Ordinamento e raggruppamento dei risultati delle query.
È possibile utilizzare criteri di selezione per includere gruppi di righe È possibile, ad esempio, creare un gruppo di risultati in cui ogni riga contiene la città in cui risiedono più autori e il nome dello stato a cui tale città appartiene più un conteggio del numero di autori residenti 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 di criteri di selezione su gruppi di righe, vedere Procedura: specificare condizioni per i gruppi e Procedura: utilizzare clausole HAVING e WHERE nella stessa query.