sql >> Databasteknik >  >> RDS >> Mysql

MySQL - Vad är skillnaden mellan GROUP BY och DISTINCT?

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.



  1. Uppdatera fråga if-sats för Oracle

  2. MySQL enkla citat, dubbla citat, tillbaka citat Användning förklaras

  3. Ta bort dubblettrader från tabell i Oracle

  4. Matcha utbud med efterfrågan – lösningar, del 2