Ao executar uma consulta com o SQL SELECT DISTINCT, pode obter re­sul­ta­dos com conjuntos de dados e linhas únicas. SELECT DISTINCT elimina as du­pli­ca­tas das linhas e dos conjuntos de dados se­le­ci­o­na­dos, me­lho­rando a precisão e a clareza da sua análise de dados.

O que é o SQL SELECT DISTINCT?

SELECT DISTINCT é um operador de pro­ces­sa­mento 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 du­pli­ca­dos, de modo que nos re­sul­ta­dos da pesquisa só se vejam linhas únicas, distintas das restantes. Se combinar SELECT DISTINCT com outros ope­ra­do­res e comandos SQL, poderá ajustar a consulta às suas ne­ces­si­da­des.

Di­fe­ren­ças entre o SQL SELECT DISTINCT e o SQL SELECT UNIQUE

É possível que UNIQUE (único) e DISTINCT (diferente) tenham sig­ni­fi­ca­dos se­me­lhan­tes, mas, enquanto ope­ra­do­res SQL, de­sem­pe­nham funções di­fe­ren­tes. Para utilizar o SQL SELECT DISTINCT cor­re­ta­mente, é ne­ces­sá­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 du­pli­ca­dos, elimina as re­dun­dân­cias e devolve re­sul­ta­dos inequí­vo­cos e distintos É ideal para impedir a in­tro­du­ção de du­pli­ca­dos e valores duplos em tabelas e colunas es­pe­cí­fi­cas através de res­tri­ções nas colunas
É utilizado prin­ci­pal­mente para obter re­sul­ta­dos claros e sig­ni­fi­ca­ti­vos ao avaliar, analisar e comparar conjuntos de dados É utilizado na criação e edição de tabelas para garantir uma melhor in­te­gri­dade dos dados sem re­dun­dân­cias
Dica

Queres iniciar-te ra­pi­da­mente na linguagem de pro­gra­ma­ção e nas bases de dados SQL? O nosso guia de SQL com exemplos apresenta-te os fun­da­men­tos do SQL e as funções mais im­por­tan­tes.

Ex­pli­ca­ção da sintaxe do SELECT DISTINCT

A sintaxe do SELECT DISTINCT é simples:

SELECT  DISTINCT  ColumnaA, ColumnaB, …
FROM tabla
sql

Utilize os seguintes pa­râ­me­tros:

  • SELECT DISTINCT: O comando SELECT, em com­bi­na­ção com o operador DISTINCT, seleciona as colunas das quais pretende eliminar as du­pli­ca­tas nos re­sul­ta­dos.
  • FROM: Selecione a tabela na qual pretende procurar colunas com du­pli­ca­dos.
  • WHERE: Com a cláusula opcional SQL WHERE, pode adicionar condições especiais e limitar a consulta de dados a valores es­pe­cí­fi­cos.

Para que serve o SELECT DISTINCT

As pos­si­bi­li­da­des de uti­li­za­ção das consultas com o SQL SELECT DISTINCT são pra­ti­ca­mente ili­mi­ta­das. Alguns exemplos:

  • Reduzir os dados de produtos, clientes, en­co­men­das ou pacientes que aparecem várias vezes nas linhas a uma única entrada
  • Contar e indicar cla­ra­mente o número de compras de produtos através das en­co­men­das e do iden­ti­fi­ca­dor do produto
  • Consultar dados únicos de pacientes ou clientes
  • Mostrar todos os endereços de envio ou for­ne­ce­do­res de uma região

Exemplos práticos de SQL SELECT DISTINCT

Para que possas ver como funciona o SQL SELECT DISTINCT, ex­pli­ca­mos o operador com dois exemplos práticos de uti­li­za­ção.

Ver todos os clientes

Se quiser ver cla­ra­mente todos os clientes da tabela «Pedidos», sem linhas du­pli­ca­das devido a pedidos múltiplos, proceda da seguinte forma:

SELECT  DISTINCT  Nombre de cliente
FROM  Pedido
sql

Filtrar clientes de uma de­ter­mi­nada região

Com a cláusula WHERE, pode definir de forma mais precisa a filtragem de clientes através de condições adi­ci­o­nais. Se, por exemplo, quiser consultar todos os clientes da tabela «En­co­men­das» que são da Alemanha, proceda da seguinte forma:

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

Al­ter­na­ti­vas ao SQL SELECT DISTINCT

Embora DISTINCT seja uma boa forma de eliminar du­pli­ca­dos 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 se­le­ci­o­na­das; por isso, em certas ocasiões, valerá a pena utilizar al­ter­na­ti­vas com funções se­me­lhan­tes. Algumas delas são:

  • GROUP BY: Com a cláusula SQL GROUP BY, pode agrupar conjuntos de dados de de­ter­mi­na­das colunas e refinar os re­sul­ta­dos com outras funções e ope­ra­do­res. EXISTS: Com o SQL EXISTS, pode verificar se existem de­ter­mi­na­dos 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 sub­con­sulta, ou seja, uma consulta aninhada noutra consulta, pode res­trin­gir melhor os re­sul­ta­dos. Na sub­con­sulta, escolhe com SELECT as colunas se­le­ci­o­na­das, com FROM decide a tabela em que se encontram as colunas e com WHERE determina os critérios que os re­sul­ta­dos devem cumprir.
Ir para o menu principal