Como filtrar registros distintos no SQL com DISTINCT?

O DISTINCT no SQL remove duplicatas e retorna apenas valores únicos em uma consulta, garantindo uma visualização mais organizada dos dados.

Como filtrar registros distintos no SQL com DISTINCT?

O comando DISTINCT no SQL permite retornar apenas valores únicos, eliminando registros duplicados na consulta.

Exemplo básico de DISTINCT

Se tivermos uma tabela clientes com várias cidades repetidas, podemos listar apenas os nomes de cidades únicas:

SELECT DISTINCT cidade FROM clientes;

Isso retorna apenas uma vez cada cidade existente na tabela, removendo repetições.

Usando DISTINCT em múltiplas colunas

Também podemos aplicar DISTINCT a mais de uma coluna para garantir que a combinação delas seja única:

SELECT DISTINCT cidade, estado FROM clientes;

Aqui, cada combinação única de cidade e estado será exibida, removendo linhas duplicadas.

Contando registros distintos

Se quisermos saber quantos valores únicos existem em uma coluna, usamos COUNT(DISTINCT coluna), como no exemplo abaixo:

SELECT COUNT(DISTINCT cidade) AS total_cidades FROM clientes;

Isso retorna a quantidade de cidades diferentes cadastradas na tabela clientes.

Cuidados ao usar DISTINCT

  • DISTINCT pode impactar a performance em grandes tabelas, pois o banco precisa processar e eliminar duplicatas.
  • Sempre teste sua consulta sem DISTINCT antes de aplicá-lo para entender o impacto no resultado.
  • Se precisar remover duplicatas permanentemente, considere normalizar a estrutura do banco de dados.

O uso do DISTINCT no SQL é uma solução prática para evitar registros duplicados em consultas, mas deve ser usado com cautela. Em grandes volumes de dados, a remoção de duplicatas pode gerar um alto custo computacional, pois o banco de dados precisa varrer e comparar os registros. Sempre que possível, vale a pena avaliar se a modelagem do banco está correta ou se índices podem ser utilizados para otimizar as consultas. Além disso, DISTINCT pode ser útil em relatórios e dashboards, garantindo que apenas valores únicos sejam exibidos para análise.

Algumas aplicações:

  • Listagem de categorias únicas em um sistema de produtos
  • Identificação de cidades distintas em cadastros de clientes
  • Evitar registros duplicados em relatórios financeiros
  • Filtragem de valores únicos em pesquisas de dados
  • Otimização de análises para evitar redundâncias

Dicas para quem está começando

  • Use DISTINCT apenas quando necessário para evitar sobrecarga no banco
  • Teste a consulta sem DISTINCT primeiro para entender os dados retornados
  • Se precisar de contagens, utilize COUNT(DISTINCT coluna)
  • Combine DISTINCT com ORDER BY para organizar melhor os resultados
  • Evite DISTINCT em consultas que já usam colunas de chave primária, pois os registros já são únicos

Contribuições de Carla Nunes

Compartilhe este tutorial: Como filtrar registros distintos no SQL com DISTINCT?

Compartilhe este tutorial

Continue aprendendo:

Como limitar a quantidade de registros retornados com LIMIT?

O comando LIMIT no SQL permite restringir a quantidade de registros retornados por uma consulta, melhorando a eficiência da busca.

Tutorial anterior

Como buscar registros que contenham uma palavra específica no SQL?

O SQL permite buscar registros que contenham uma palavra específica em uma coluna utilizando o operador LIKE e expressões regulares.

Próximo tutorial