Com o operador SQL SELECT DISTINCT, você garante que apenas linhas e registros únicos sejam re­tor­na­dos por re­sul­ta­dos de consultas a bancos de dados. SELECT DISTINCT remove registros du­pli­ca­dos de linhas se­le­ci­o­na­das, au­men­tando a precisão e fa­ci­li­tando análises de dados.

O que é SQL SELECT DISTINCT?

SELECT DISTINCT é um operador de pro­ces­sa­mento SQL usado em conjunto com o comando SQL SELECT. O comando SELECT seleciona uma ou mais colunas e registros em consultas de dados. Em com­bi­na­ção com o operador DISTINCT, você garante que seu resultado de consulta contenha apenas linhas únicas e distintas, removendo linhas e valores du­pli­ca­dos. Ao combinar SELECT DISTINCT com outros ope­ra­do­res SQL e comandos SQL, você pode adaptar suas consultas a re­qui­si­tos in­di­vi­du­ais.

Diferença entre SQL SELECT DISTINCT e SELECT UNIQUE

Embora UNIQUE e DISTINCT sejam se­me­lhan­tes em seu sig­ni­fi­cado literal, eles de­sem­pe­nham funções di­fe­ren­tes como ope­ra­do­res SQL. Para aplicar cor­re­ta­mente o operador SQL SELECT DISTINCT, é im­por­tante entender como esses ope­ra­do­res se di­fe­ren­ciam:

SQL SELECT DISTINCT SQL SELECT UNIQUE
Verifica registros completos para linhas e valores du­pli­ca­dos, remove re­dun­dân­cias e retorna apenas re­sul­ta­dos distintos e únicos. Serve para evitar a inserção de valores du­pli­ca­dos em tabelas e colunas se­le­ci­o­na­das, res­trin­gindo colunas.
É utilizado prin­ci­pal­mente na análise, avaliação e com­pa­ra­Ã§Ã£o de registros para obter re­sul­ta­dos únicos e sig­ni­fi­ca­ti­vos. É utilizado na criação e edição de tabelas para garantir melhor in­te­gri­dade dos dados sem re­dun­dân­cias.
Dica

Quer aprender ra­pi­da­mente a linguagem de pro­gra­ma­ção e bancos de dados? Nossa in­tro­du­ção a SQL com exemplos apresenta as funções e fun­da­men­tos mais im­por­tan­tes de SQL.

Sintaxe de SQL SELECT DISTINCT

A sintaxe básica do SELECT DISTINCT é a seguinte:

SELECT DISTINCT ColunaA, ColunaB, …
FROM tabela
sql

Esses são os pa­râ­me­tros uti­li­za­dos:

  • SELECT DISTINCT: O comando SELECT em com­bi­na­ção com o operador DISTINCT seleciona as colunas das quais você deseja remover valores du­pli­ca­dos em um resultado.
  • FROM: Seleciona a tabela na qual você deseja buscar valores du­pli­ca­dos.
  • WHERE: Com a cláusula opcional SQL WHERE, você pode limitar a consulta de dados a valores re­le­van­tes usando condições adi­ci­o­nais.

Quando usar SQL SELECT DISTINCT

As pos­si­bi­li­da­des de consultas com SQL SELECT DISTINCT são pra­ti­ca­mente ili­mi­ta­das. Você pode, por exemplo:

  • Reduzir a apenas uma entrada única dados de clientes, pedidos, pacientes ou produtos que aparecem várias vezes em linhas.
  • Contar o número de compras de produtos com base nos pedidos e IDs de produtos e exibi-los de forma única.
  • Buscar dados únicos de pacientes ou clientes.
  • Exibir todos os endereços de entrega ou for­ne­ce­do­res em uma região.

Exemplos de uso de SQL SELECT DISTINCT

Para ilustrar como o operador SQL SELECT DISTINCT funciona, apre­sen­ta­mos dois exemplos práticos.

Buscar todos os clientes

Você deseja buscar de forma única todos os clientes em uma tabela “Pedidos”, sem linhas du­pli­ca­das devido a múltiplos pedidos. Proceda da seguinte forma:

SELECT DISTINCT NomeCliente
FROM Pedidos
sql

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

Com a cláusula WHERE, você pode refinar a análise dos dados dos clientes com condições adi­ci­o­nais. Por exemplo, se quiser buscar todos os nomes de clientes que são do Brasil na tabela “Pedidos”, proceda da seguinte forma:

SELECT DISTINCT NomeCliente, País
FROM Pedidos
WHERE País = 'Brasil'
sql

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

Embora o SELECT DISTINCT seja uma maneira prática de remover du­pli­ca­tas de consultas de dados, ele nem sempre é a melhor solução. Como o operador requer muitos recursos em grandes conjuntos de dados devido à com­pa­ra­ção de cada coluna se­le­ci­o­nada, é acon­se­lhá­vel escolher al­ter­na­ti­vas se­me­lhan­tes. Entre elas estão:

  • GROUP BY: Com a cláusula SQL GROUP BY, você agrupa registros desejados a partir de colunas es­pe­ci­fi­ca­das e os refina com funções e ope­ra­do­res adi­ci­o­nais.
  • EXISTS: Com SQL EXISTS, você verifica se valores e registros es­pe­cí­fi­cos existem em outra tabela.
  • COUNT: Ao combinar DISTINCT com a função SQL COUNT, você pode contar valores únicos em colunas.
  • SELECT + FROM + WHERE: Com uma sub­con­sulta, ou seja, uma consulta aninhada dentro de outra consulta, você pode delimitar melhor seus re­sul­ta­dos. Para isso, na sub­con­sulta, selecione a coluna em questão com SELECT, defina com FROM em qual tabela a coluna se encontra e es­ta­be­leça com WHERE as condições que os re­sul­ta­dos devem cumprir.
Ir para o menu principal