Problema:
Você gostaria de exibir registros não duplicados em SQL.
Exemplo:
Nosso banco de dados tem uma tabela chamada
City
com dados nas colunas id
, name
e country
. id | nome | país |
---|---|---|
1 | Madri | Espanha |
2 | Barcelona | Espanha |
3 | Varsóvia | Polônia |
4 | Cracóvia | Polônia |
Vamos pegar os nomes dos países sem duplicatas.
Solução:
Usaremos a palavra-chave
DISTINCT
. Segue a consulta:SELECT DISTINCT country FROM City;
Segue o resultado da consulta:
país |
---|
Espanha |
Polônia |
Discussão:
Se você quiser que a consulta retorne apenas linhas exclusivas, use a palavra-chave
DISTINCT
após SELECT
. DISTINCT
pode ser usado para buscar linhas exclusivas de uma ou mais colunas. Você precisa listar as colunas após o DISTINCT
palavra-chave. Como funciona sob o capô? Quando a consulta é executada, todo o conjunto de dados é selecionado primeiro, depois
DISTINCT
remove as linhas duplicadas dadas as colunas selecionadas. Em nosso exemplo, Espanha e Polônia aparecem duas vezes na tabela. No entanto, após aplicar a palavra-chave
DISTINCT
, cada um deles é retornado apenas uma vez.