sql >> Base de Datos >  >> RDS >> Mysql

MySQL - ¿Cuál es la diferencia entre GROUP BY y DISTINCT?

Duplicado de

¿Hay alguna diferencia entre GROUP BY y DISTINTO

Ya está discutido aquí

Si todavía quieres escuchar aquí

Bueno, agrupar por y distinguir tiene su propio uso.

Distinto se utiliza para filtrar registros únicos de los registros que cumplen los criterios de consulta.

La cláusula Group by se utiliza para agrupar los datos sobre los que se activan las funciones agregadas y la salida se devuelve en función de las columnas de la cláusula group by. Tiene sus propias limitaciones, como que todas las columnas que se encuentran en la consulta de selección, además de las funciones agregadas, deben ser parte de la cláusula Group by.

Entonces, aunque puede tener los mismos datos devueltos por distinto y agrupar por cláusula, es mejor usar distinto. Vea el siguiente ejemplo

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

se puede escribir como

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

Te hace la vida más fácil cuando tienes más columnas en la lista de selección. Pero al mismo tiempo, si necesita mostrar sum(col10) junto con las columnas anteriores, tendrá que usar Agrupar por. En ese caso, distinto no funcionará.

por ejemplo

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

Espero que esto ayude.