SQL leren: DISTINCT
Dubbels weg met DISTINCT
"De burgemeester vraagt uit welke gemeenten onze bezoekers komen," zegt Noor. "Maar mijn lijst noemt Hasselt zes keer." Eén keer is genoeg.
DISTINCT houdt elke rij één keer
Zet DISTINCT direct na SELECT en elke rij komt maar één keer in het resultaat, hoe vaak ze ook in de tabel staat.
Onderaan zie je dezelfde kolom zonder DISTINCT: achttien tickets, met heel wat dubbels.
SELECT DISTINCT gemeente FROM tickets| gemeente |
|---|
| Hasselt |
| Genk |
| Antwerpen |
| Leuven |
| Maastricht |
| Sint-Truiden |
| Tongeren |
SELECT gemeente FROM tickets| gemeente |
|---|
| Hasselt |
| Genk |
| Hasselt |
| Antwerpen |
| Leuven |
| Maastricht |
| Hasselt |
| Genk |
Dubbel is de hele rij
Met meerdere kolommen kijkt DISTINCT naar de combinatie. Een dagticket voor vrijdag en een dagticket voor zaterdag zijn twee verschillende rijen.
NULL telt hier als één waarde: alle combitickets hebben geen dag, en staan dus maar één keer in het resultaat.
SELECT DISTINCT soort, dag FROM tickets| soort | dag |
|---|---|
| combiticket | NULL |
| dagticket | 2025-07-19 |
| dagticket | 2025-07-18 |
| vip | 2025-07-19 |
| dagticket | 2025-07-20 |
| vip | 2025-07-18 |
| vip | 2025-07-20 |
Probeer het zelf
Voor welke dagen werden er dagtickets verkocht? Toon elke dag één keer, de vroegste eerst.
Klaar voor meer?
De volledige les heeft 6 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les