Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Qual é a diferença entre GROUP BY e DISTINCT?


Duplicata de

Existe alguma diferença entre GROUP BY e DISTINTO

Já foi discutido aqui

Se ainda quiser ouvir aqui

Bem agrupar por e distinto tem seu próprio uso.

Distinto é usado para filtrar registros exclusivos dos registros que atendem aos critérios de consulta.

A cláusula Group by é usada para agrupar os dados sobre os quais as funções agregadas são acionadas e a saída é retornada com base nas colunas na cláusula group by. Ele tem suas próprias limitações, como todas as colunas que estão na consulta de seleção, além das funções de agregação, que devem fazer parte da cláusula Group by.

Portanto, mesmo que você possa ter os mesmos dados retornados por distinct e group by cláusula, é melhor usar distinct. Veja o exemplo abaixo
select col1,col2,col3,col4,col5,col6,col7,col8,col9 from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9

pode ser escrito como
select distinct col1,col2,col3,col4,col5,col6,col7,col8,col9 from table

Isso facilita a sua vida quando você tem mais colunas na lista de seleção. Mas, ao mesmo tempo, se você precisar exibir sum(col10) junto com as colunas acima, terá que usar Group By. Nesse caso, o distinto não funcionará.

por exemplo
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 isto ajude.