sql select distinct voorbeeld column

SQL SELECT DISTINCT statement: unieke waarden ophalen [TUTORIAL]

Iedereen die met data werkt zal vroeg of laat data uit een database willen ophalen. Vaak gebruikt men een relationele database die met SQL statements (ook wel SQL query) bevraagd kan worden.

In dit blog gaan we in op het SQL SELECT DISTINCT statement, waarmee je data kunt ophalen uit een database en vervolgens alleen unieke waarden toont.

Wil je op je eigen computer meedoen met deze tutorial? Volg dan deze stappen om SQL en PgAdmin te installeren en de database in te laden.

Inhoud

Wat is SQL SELECT DISTINCT?

SELECT is het meestgebruikte SQL statement. Het stelt ons in staat om informatie uit een database tabel (of meerdere tabellen) op te halen. Door het DISTINCT statement toe te voegen zorgen we ervoor dat alleen unieke waarden als output worden gegeven.

De structuur van de syntax is als volgt: SELECT DISTINCT column_naam FROM tabel_naam;

Ook interessant: een volledige uitleg van SQL SELECT

Het DISTINCT statement is in veel gevallen erg handig. Het geeft je snel een gevoel bij de aanwezige verschillen in waarden voor een column. Stel dat je een column rapportcijfer hebt in een fictieve tabel, dan leert DISTINCT je welke unieke waarden in die column zitten. Dit zouden cijfers tussen de 1 en 10 kunnen zijn (bij Nederlandse data) maar ook F tot A+ (bij Amerikaanse data). Een ander voorbeeld kan zijn een tabel met een jaar column. Stel je past DISTINCT toe en ziet dat alleen jaartallen 2020, 2021 en 2022 als output dan zegt dat veel over de scope van jouw dataset. Deze informatie kan waardevol zijn.

Voorbeelden van SQL DISTINCT

Nu zullen we laten zien hoe je SQL SELECT DISTINCT gebruikt in de praktijk. Hiervoor gebruiken we de IMDb voorbeeld dataset die beschreven staat op deze pagina. Je kunt de dataset ook downloaden via de pagina en als je nog geen mogelijkheid hebt om met SQL te werken op jouw computer dan kun je deze installatie-stappen volgen.

Unieke waarden uit één column tonen

Met onderstaande query halen we unieke waarden voor gender op uit de acteurstabel. Dit is handig als je wilt weten of er alleen onderscheid wordt gemaakt tussen man en vrouw in deze dataset, of dat er meer variaties aanwezig zijn.

SELECT DISTINCT gender
FROM actors;

Onderstaand is een alternatieve notatie die hetzelfde resultaat geeft.

SELECT DISTINCT(gender)
FROM actors;

sql select distinct unieke waarden column

We zien dat er in deze column alleen de waarden M en F aanwezig zijn, oftewel male en female.

SQL SELECT DISTINCT toepassen op meerdere columns

Het is mogelijk om DISCTINCT toe te passen op meerdere columns om zo unieke combinaties van waarden in rijen te vinden.

Met onderstaande query zien we de unieke combinaties die voorkomen in gender en het aantal films waarin de desbetreffende acteur heeft gespeeld.

SELECT DISTINCT gender, film_count
FROM actors;

Wederom is het mogelijk DISTINCT() te gebruiken als je dat prettiger vindt. De output ziet er dan iets anders uit omdat de output dan in één column wordt gegeven.

sql select distinct meerdere columns

We zien dat we in de tabel vrouwen hebben die in 1, 2 of 3 films spelen. We hebben mannen in de tabel die in 1, 2, 3, of 9 films spelen.

SQL SELECT DISTINCT en missende waarden

SQL SELECT DISTINCT ziet missende waarden ook als waarde, en geeft één missende waarde terug als unieke waarde binnen de column.

We bekijken de cijfers die films krijgen door unieke waarden in de column rank op te vragen.

SELECT DISTINCT rank
FROM movies;

sql select distinct missing values

De eerste waarde is [null] en dat leert ons dat er minimaal één film in de tabel aanwezig is zonder waarde in de column rank.

SQL SELECT DISTINCT vs. GROUP BY

Zowel SQL SELECT DISTINCT als GROUP BY kun je gebruiken om het aantal rijen dat wordt teruggegeven te reduceren. Beide doen dit door dubbele waarden te verwijderen.

Het voordeel van GROUP BY is dat je een functie (denk aan COUNT(), MAX(), MIN(), SUM(), AVG()) kan toepassen op één of meerdere kolommen.

SELECT gender, film_count
FROM actors
GROUP BY gender, film_count;

sql select distinct vs group by

We zien inderdaad dat de output identiek is wanneer we GROUP BY toepassen.

Ook interessant:

Wil je nog veel meer leren over SQL? Bekijk dan onze SQL cursus voor data analyse. Door middel van theorie en praktijkoefening wordt er een kwalitatieve basis gelegd. Nadat je deze training hebt gevolgd kun je zelfstandig verder aan de slag. Je kunt ook altijd even contact opnemen via info@datasciencepartners.nl of 020 - 24 43 146 als je een vraag hebt.

by: