Problema:
Desideri eliminare le righe duplicate dal set di risultati di una query in modo che ogni riga venga visualizzata una sola volta.
Esempio:
Il nostro database ha una tabella chiamata clothes con i dati nelle seguenti colonne:id , name , color e year_produced .
| id | colore | anno_prodotto | |
|---|---|---|---|
| 1 | T-shirt | giallo | 2015 |
| 2 | giacca | blu | 2016 |
| 3 | jeans | nero | 2015 |
| 4 | giacca | blu | 2015 |
| 5 | giacca | verde | 2016 |
| 6 | giacca | giallo | 2017 |
| 7 | cappello | giallo | 2017 |
Prendiamo i nomi e i colori non ripetuti degli abiti prodotti prima del 2017.
Soluzione:
SELECT DISTINCT name, color FROM clothes WHERE year_produced < 2017;
Ecco il risultato:
| nome | colore |
|---|---|
| T-shirt | giallo |
| giacca | blu |
| jeans | nero |
| giacca | verde |
Si noti che il blu
Discussione:
Usa semplicemente il DISTINCT parola chiave dopo SELECT se vuoi selezionare solo righe non ripetute. Questa parola chiave obbliga la query a eliminare le righe duplicate, in base solo alle colonne che hai elencato.
Ecco un esempio di selezione delle sole righe per le quali il nome dell'elemento è univoco:
SELECT DISTINCT name FROM clothes WHERE year_produced < 2017;
A differenza della query precedente, questa restituisce solo tre record:
| nome | |
|---|---|
| T-shirt | |
| jeans | |
Mentre ci sono quattro jeans nella tabella originale (due blu, uno verde e uno giallo), l'articolo appare solo una volta in questo set di risultati grazie al DISTINCT parola chiave.