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

MySQL - Hvad er forskellen mellem GROUP BY og DISTINCT?

Duplikat af

Er der nogen forskel mellem GROUP BY og DISTINCT

Det er allerede diskuteret her

Hvis du stadig vil lytte her

Godt gruppe efter og særskilt har sin egen brug.

Distinct bruges til at filtrere unikke poster ud af de poster, der opfylder forespørgselskriterierne.

Gruppér efter klausul bruges til at gruppere de data, hvorpå de samlede funktioner udløses, og outputtet returneres baseret på kolonnerne i gruppe efter klausulen. Det har sine egne begrænsninger, såsom at alle de kolonner, der er i udvælgelsesforespørgslen bortset fra de samlede funktioner, skal være en del af Group by-klausulen.

Så selvom du kan få de samme data returneret af distinkt og gruppe for klausul, er det bedre at bruge distinkt. Se nedenstående eksempel

select col1,col2,col3,col4,col5,col6,col7,col8,col9 from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9

kan skrives som

select distinct col1,col2,col3,col4,col5,col6,col7,col8,col9 from table

Det gør livet lettere for dig, når du har flere kolonner på listen. Men på samme tid, hvis du skal vise sum(col10) sammen med ovenstående kolonner, skal du bruge Group By. I så fald vil distinkt ikke virke.

f.eks.

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

Håber dette hjælper.



  1. JDBC-forbindelsestimeout kan ikke oprette forbindelse igen

  2. Hvordan udfylder man hullerne i auto-inkrementering felter?

  3. Hvornår skal du skifte til en større RDS-instans

  4. Jeg har opsætning af mysql og apache supersæt på dockers og forbundet med et bronetværk, hvad vil SQLAlchemy URI være?