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 kolomnaam FROM tabel_naam;

Ook interessant: een volledige uitleg van SQL SELECT

Middels SELECT DISTINCT kan je snel een gevoel krijgen bij de verschillende waarden die er in een kolom zitten. Dit is vooral handig wanneer een tabel veel rijen bevat met veel dezelfde waarden. Voorbeeld: je beschikt over een tabel met leden van een voetbalclub met de kolommen ‘naam’ en ‘woonplaats’. Middels ‘SELECT DISTINCT woonplats zie je direct een overzicht van alle verschillende woonplaatsen.

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 kolom 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 kolom alleen de waarden M en F aanwezig zijn, oftewel male en female. Tip: gebruik count(*) om ook het aantal keer dat elke unieke waarde voorkomt te tellen.

Leren werken met SQL voor data analayse? Na onze 2-daagse SQL cursus kun je volledig zelfstandig werken met SQL.

SQL SELECT DISTINCT toepassen op meerdere kolommen

Het is mogelijk om DISCTINCT toe te passen op meerdere kolommen 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 kolom 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 (NULL) als unieke waarde binnen de kolom.

We bekijken de cijfers die films krijgen door unieke waarden in de kolom 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 kolom 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 enkel unieke waardes te tonen.

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 of download onderstaande opleidingsbrochure. In onze SQL cursus wisselen theorie en praktijkoefening elkaar steeds af. Nadat je deze training hebt gevolgd kun je zelfstandig met SQL werken. Je kunt ook altijd even contact opnemen via info@datasciencepartners.nl of 020 - 24 43 146 als je een vraag hebt.

by: