Duplicato di
C'è qualche differenza tra GROUP BY e DISTINTO
Se ne è già parlato qui
Se vuoi ancora ascolta qui
Bene raggruppare e distinguere ha il suo uso.
Distinct viene utilizzato per filtrare i record univoci dai record che soddisfano i criteri di query.
La clausola Group by viene utilizzata per raggruppare i dati su cui vengono attivate le funzioni di aggregazione e l'output viene restituito in base alle colonne nella clausola group by. Ha le sue limitazioni, ad esempio tutte le colonne che si trovano nella query di selezione, a parte le funzioni aggregate, devono far parte della clausola Group by.
Quindi, anche se puoi avere gli stessi dati restituiti da distinti e raggruppati per clausola, è meglio usare distinti. Vedi l'esempio sotto
select col1,col2,col3,col4,col5,col6,col7,col8,col9 from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9
può essere scritto come
select distinct col1,col2,col3,col4,col5,col6,col7,col8,col9 from table
Ti semplifica la vita quando hai più colonne nell'elenco di selezione. Ma allo stesso tempo, se hai bisogno di visualizzare sum(col10) insieme alle colonne sopra, dovrai usare Raggruppa per. In tal caso il distinto non funzionerà.
es.
select col1,col2,col3,col4,col5,col6,col7,col8,col9,sum(col10) from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9
Spero che questo aiuti.