SQL - Parola chiave distinta

L'SQL DISTINCT la parola chiave viene utilizzata insieme all'istruzione SELECT per eliminare tutti i record duplicati e recuperare solo i record univoci.

Potrebbe verificarsi una situazione in cui si dispone di più record duplicati in una tabella. Durante il recupero di tali record, ha più senso recuperare solo quei record univoci invece di recuperare i record duplicati.

Sintassi

La sintassi di base della parola chiave DISTINCT per eliminare i record duplicati è la seguente:

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

Esempio

Considera la tabella CLIENTI con i seguenti record:

+----+----------+-----+-----------+----------+
| 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 |
+----+----------+-----+-----------+----------+

Innanzitutto, vediamo come la seguente query SELECT restituisce i record di stipendio duplicati.

SQL> SELECT SALARY FROM CUSTOMERS
   ORDER BY SALARY;

Questo produrrebbe il seguente risultato, dove lo stipendio (2000) arriva due volte, il che è un record duplicato dalla tabella originale.

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

Ora, usiamo la parola chiave DISTINCT con la query SELECT sopra e quindi vediamo il risultato.

SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
   ORDER BY SALARY;

Ciò produrrebbe il seguente risultato in cui non abbiamo alcuna voce duplicata.

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