SQL - Tratamento de duplicatas

Pode haver uma situação em que você tenha vários registros duplicados em uma tabela. Ao buscar esses registros, faz mais sentido buscar apenas registros únicos em vez de buscar registros duplicados.

O SQL DISTINCT A palavra-chave, que já discutimos, é usada em conjunto com a instrução SELECT para eliminar todos os registros duplicados e buscar apenas os registros únicos.

Sintaxe

A sintaxe básica de uma palavra-chave DISTINCT para eliminar registros duplicados é a seguinte.

SELECT DISTINCT column1, column2,.....columnN 
FROM table_name
WHERE [condition]

Exemplo

Considere a tabela CUSTOMERS com os seguintes registros.

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Primeiro, vamos ver como a seguinte consulta SELECT retorna registros de salários duplicados.

SQL> SELECT SALARY FROM CUSTOMERS
   ORDER BY SALARY;

Isso produziria o seguinte resultado, em que o salário de 2000 está chegando duas vezes, o que é uma duplicata da tabela original.

+----------+
| SALARY   |
+----------+
|  1500.00 |
|  2000.00 |
|  2000.00 |
|  4500.00 |
|  6500.00 |
|  8500.00 |
| 10000.00 |
+----------+

Agora, vamos usar a palavra-chave DISTINCT com a consulta SELECT acima e ver o resultado.

SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
   ORDER BY SALARY;

Isso produziria o seguinte resultado, onde não temos nenhuma entrada duplicada.

+----------+
| SALARY   |
+----------+
|  1500.00 |
|  2000.00 |
|  4500.00 |
|  6500.00 |
|  8500.00 |
| 10000.00 |
+----------+