# 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:

<table>
  <thead>
    <tr>
      <th>SQL SELECT DISTINCT</th>
      <th>SQL SELECT UNIQUE</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Verifica conjuntos de dados completos em busca de linhas e valores duplicados, elimina as redundâncias e devolve resultados inequívocos e distintos</td>
      <td>É ideal para impedir a introdução de duplicados e valores duplos em tabelas e colunas específicas através de restrições nas colunas</td>
    </tr>
    <tr>
      <td>É utilizado principalmente para obter resultados claros e significativos ao avaliar, analisar e comparar conjuntos de dados</td>
      <td>É utilizado na criação e edição de tabelas para garantir uma melhor integridade dos dados sem redundâncias</td>
    </tr>
  </tbody>
</table>

Dica Queres iniciar-te rapidamente na linguagem de programação e nas bases de dados [SQL](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/o-que-e-sql/)? [O](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/introducao-ao-sql-com-exemplos/) nosso [guia de SQL com exemplos](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/introducao-ao-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:

```sql
SELECT  DISTINCT  ColumnaA, ColumnaB, …
FROM tabla
```

Utilize os seguintes parâmetros:

- `SELECT DISTINCT`: O comando `SELECT`, em combinação com o operador `DISTINCT`, 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:

```sql
SELECT  DISTINCT  Nombre de cliente
FROM  Pedido
```

### Filtrar 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:

```sql
SELECT  DISTINCT  Nombre de cliente, País
FROM  Pedidos
WHERE  País =  'Alemania'
```

## Alternativas 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 combinar `DISTINCT` com 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 com `SELECT` as colunas selecionadas, com FROM decide a tabela em que se encontram as colunas e com `WHERE` determina os critérios que os resultados devem cumprir.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/sql-select-distinct/](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/sql-select-distinct/) for AI/LLM consumption.