Duplikat av
Finns det någon skillnad mellan GROUP BY och DISTINCT
Det diskuteras redan här
Om du fortfarande vill lyssna här
Väl grupp av och distinkt har sin egen användning.
Distinct används för att filtrera bort unika poster från de poster som uppfyller frågekriterierna.
Gruppera för sats används för att gruppera data på vilken aggregatfunktionerna aktiveras och utdata returneras baserat på kolumnerna i gruppvis sats. Den har sina egna begränsningar, som att alla kolumner som finns i urvalsfrågan förutom de aggregerade funktionerna måste vara en del av Group by-klausulen.
Så även om du kan få samma data returnerad av distinkt och grupp för klausul är det bättre att använda distinkt. Se exemplet nedan
select col1,col2,col3,col4,col5,col6,col7,col8,col9 from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9
kan skrivas som
select distinct col1,col2,col3,col4,col5,col6,col7,col8,col9 from table
Det gör livet enklare när du har fler kolumner i urvalslistan. Men samtidigt om du behöver visa sum(col10) tillsammans med ovanstående kolumner måste du använda Group By. I så fall fungerar inte distinkt.
t.ex.
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
Hoppas detta hjälper.