Problem:
Du vill visa icke-duplicerade poster i SQL.
Exempel:
Vår databas har en tabell som heter City
med data i kolumnerna id
, name
och country
.
id | namn | land |
---|---|---|
1 | Madrid | Spanien |
2 | Barcelona | Spanien |
3 | Warszawa | Polen |
4 | Krakow | Polen |
Låt oss få namnen på länderna utan dubbletter.
Lösning:
Vi använder sökordet DISTINCT
. Här är frågan:
SELECT DISTINCT country FROM City;
Här är resultatet av frågan:
land |
---|
Spanien |
Polen |
Diskussion:
Om du vill att frågan endast ska returnera unika rader, använd nyckelordet DISTINCT
efter SELECT
. DISTINCT
kan användas för att hämta unika rader från en eller flera kolumner. Du måste lista kolumnerna efter DISTINCT
nyckelord.
Hur fungerar det under huven? När frågan exekveras väljs hela uppsättningen av data först, sedan DISTINCT
tar bort raderna som dupliceras med de valda kolumnerna.
I vårt exempel förekommer både Spanien och Polen två gånger i tabellen. Men efter att ha tillämpat sökordet DISTINCT
, var och en av dem returneras endast en gång.