Iago Frota

Desenvolvedor Web

Freelancer

QA

Sunset Lover

Iago Frota

Desenvolvedor Web

Freelancer

QA

Sunset Lover

Postagens

Comparativo entre DISTINCT e GROUP BY

14 de abril de 2023 Banco de Dados
Comparativo entre DISTINCT e GROUP BY

Quando estamos trabalhando com bancos de dados em SQL, é comum utilizarmos as cláusulas DISTINCT ou GROUP BY para filtrar nossas consulta conforme o desejado. Essas duas cláusulas possuem diferenças sutis que até antes deste artigo não estava tão claro para mim. Eu só utilizava, mas não sabia explicar o verdadeiro motivo de utilizar uma ou outra.

Comparativo entre DISTINCT e GROUP BY

Distinct

A cláusula DISTINCT é utilizada para retornar valores únicos de uma coluna em uma consulta, ou seja, elimina as duplicatas dos resultados da consulta, exibindo apenas uma ocorrência de cada valor exclusivo. Por exemplo, se uma coluna "nome" possuir várias ocorrências do mesmo nome, a cláusula DISTINCT retornará apenas uma ocorrência desse nome.

O uso do DISTINCT é recomendado quando você quer obter apenas os valores únicos de uma coluna em uma consulta e não precisar de agregação de dados ou agrupamento de linhas.

Group By

A cláusula GROUP BY é utilizada para agrupar as linhas de uma consulta com base em uma ou mais colunas. Ela permite a agregação de dados e a aplicação de funções de agregação, como COUNT, SUM, AVG, MAX, MIN, entre outras, em cada grupo de linhas.

Por exemplo, você pode utilizar o GROUP BY para agrupar dados de vendas por região, por ano ou por categoria de produto e, em seguida, aplicar funções de agregação para obter informações resumidas para cada grupo.

O uso do GROUP BY é recomendado quando você precisa agrupar linhas em uma consulta com base em uma ou mais colunas e aplicar funções de agregação nos grupos formados.

Principais Diferenças

Obter apenas os valores únicos de uma coluna em uma consulta e não precisar de agregação de dados ou agrupamento de linhas

- DISTINCT

Agrupar linhas em uma consulta com base em uma ou mais colunas e aplicar funções de agregação nos grupos formados

- GROUP BY

A principal diferença entre DISTINCT e GROUP BY é que o DISTINCT opera em todas as colunas selecionadas em uma consulta, removendo duplicatas de todas as colunas, enquanto o GROUP BY opera apenas nas colunas especificadas na cláusula GROUP BY e permite a aplicação de funções de agregação nos grupos formados.

Exemplo de uso

Suponha que você tenha uma tabela de vendas com informações sobre vendas em várias regiões e datas diferentes. Você pode utilizar a cláusula GROUP BY para agrupar as vendas por região e data e, em seguida, aplicar funções de agregação, como SUM ou AVG, para determinar as vendas totais ou médias para cada região e data.

Se você só quiser saber as regiões distintas onde ocorreram vendas, você pode utilizar a cláusula DISTINCT em vez da cláusula GROUP BY. Isso retornará apenas uma ocorrência de cada região na tabela de vendas, independentemente do número de vendas que ocorreram em cada região.

Conclusão

O DISTINCT retorna resultados "mais simples" e o GROUP BY pode retornar resultados mais complexos

- Autor

Por fim, muitas das vezes utilizamos "ferramentas" e não sabemos explicar o motivo do por que uma melhor do a outra. espero ter mostrado de forma simples as principais diferença entre o uso do DISTINCT e do GROUP BY.


Referências

SQL DISTINCT: listando valores distintos em tabelas! -
https://blog.betrybe.com/sql-distinct/#:~:text=Enquanto%20o%20comando%20DISTINCT%20%C3%A9,acordo%20com%20um%20crit%C3%A9rio%20espec%C3%ADfico.

Qual é mais rápido: DISTINCT ou GROUP BY? -
https://portosql.wordpress.com/2018/09/02/distinct-x-group-by/
Qual é a diferença entre DISTINCT e GROUP BY? -
https://codigosimples.net/2014/05/18/diferencas-entre-distinct-e-group-sql-server/

DISTINCT e GROUP BY, qual a diferença entre ambas as declarações?

Taggs:
Write a comment

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.