SQL SELECT DISTINCT – como eliminar valores duplicados de uma pesquisa de dados
Ao executar uma consulta com o SQL SELECT DISTINCT, pode obter resultados com conjuntos de dados e linhas únicas. SELECT DISTINCT elimina as duplicatas das linhas e dos conjuntos de dados selecionados, melhorando a precisão e a clareza da sua análise de dados.
O que é o SQL SELECT DISTINCT?
SELECT DISTINCT é um operador de processamento SQL utilizado em conjunto com o comando SQL SELECT. Na consulta, o comando SELECT seleciona uma ou várias colunas e conjuntos de dados. O operador DISTINCT elimina as linhas e os valores duplicados, de modo que nos resultados da pesquisa só se vejam linhas únicas, distintas das restantes. Se combinar SELECT DISTINCT com outros operadores e comandos SQL, poderá ajustar a consulta às suas necessidades.
Diferenças entre o SQL SELECT DISTINCT e o SQL SELECT UNIQUE
É possível que UNIQUE (único) e DISTINCT (diferente) tenham significados semelhantes, mas, enquanto operadores SQL, desempenham funções diferentes. Para utilizar o SQL SELECT DISTINCT corretamente, é necessário saber em que é que ambas as funções diferem:
| SQL SELECT DISTINCT | SQL SELECT UNIQUE |
|---|---|
| Verifica conjuntos de dados completos em busca de linhas e valores duplicados, elimina as redundâncias e devolve resultados inequívocos e distintos | É ideal para impedir a introdução de duplicados e valores duplos em tabelas e colunas específicas através de restrições nas colunas |
| É utilizado principalmente para obter resultados claros e significativos ao avaliar, analisar e comparar conjuntos de dados | É utilizado na criação e edição de tabelas para garantir uma melhor integridade dos dados sem redundâncias |
Queres iniciar-te rapidamente na linguagem de programação e nas bases de dados SQL? O nosso guia de SQL com exemplos apresenta-te os fundamentos do SQL e as funções mais importantes.
Explicação da sintaxe do SELECT DISTINCT
A sintaxe do SELECT DISTINCT é simples:
SELECT DISTINCT ColumnaA, ColumnaB, …
FROM tablasqlUtilize os seguintes parâmetros:
SELECT DISTINCT: O comandoSELECT, em combinação com o operadorDISTINCT, seleciona as colunas das quais pretende eliminar as duplicatas nos resultados.FROM: Selecione a tabela na qual pretende procurar colunas com duplicados.WHERE: Com a cláusula opcional SQL WHERE, pode adicionar condições especiais e limitar a consulta de dados a valores específicos.
Para que serve o SELECT DISTINCT
As possibilidades de utilização das consultas com o SQL SELECT DISTINCT são praticamente ilimitadas. Alguns exemplos:
- Reduzir os dados de produtos, clientes, encomendas ou pacientes que aparecem várias vezes nas linhas a uma única entrada
- Contar e indicar claramente o número de compras de produtos através das encomendas e do identificador do produto
- Consultar dados únicos de pacientes ou clientes
- Mostrar todos os endereços de envio ou fornecedores de uma região
Exemplos práticos de SQL SELECT DISTINCT
Para que possas ver como funciona o SQL SELECT DISTINCT, explicamos o operador com dois exemplos práticos de utilização.
Ver todos os clientes
Se quiser ver claramente todos os clientes da tabela «Pedidos», sem linhas duplicadas devido a pedidos múltiplos, proceda da seguinte forma:
SELECT DISTINCT Nombre de cliente
FROM PedidosqlFiltrar clientes de uma determinada região
Com a cláusula WHERE, pode definir de forma mais precisa a filtragem de clientes através de condições adicionais. Se, por exemplo, quiser consultar todos os clientes da tabela «Encomendas» que são da Alemanha, proceda da seguinte forma:
SELECT DISTINCT Nombre de cliente, País
FROM Pedidos
WHERE País = 'Alemania'sqlAlternativas ao SQL SELECT DISTINCT
Embora DISTINCT seja uma boa forma de eliminar duplicados numa consulta de dados, DISTINCT sempre é a melhor opção. Ao lidar com grandes conjuntos de dados, este operador consome muitos recursos, uma vez que tem de comparar cada uma das colunas selecionadas; por isso, em certas ocasiões, valerá a pena utilizar alternativas com funções semelhantes. Algumas delas são:
GROUP BY: Com a cláusula SQL GROUP BY, pode agrupar conjuntos de dados de determinadas colunas e refinar os resultados com outras funções e operadores.EXISTS: Com o SQL EXISTS, pode verificar se existem determinados valores e conjuntos de dados noutra tabela.COUNT: Se combinarDISTINCTcom a função SQL COUNT, pode contar valores únicos nas colunas.SELECT+FROM+WHERE: Com uma subconsulta, ou seja, uma consulta aninhada noutra consulta, pode restringir melhor os resultados. Na subconsulta, escolhe comSELECTas colunas selecionadas, com FROM decide a tabela em que se encontram as colunas e comWHEREdetermina os critérios que os resultados devem cumprir.