Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL - Qual è la differenza tra GROUP BY e DISTINCT?

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.