Cursus
Het spreekt voor zich dat rijen of waarden tellen een belangrijk onderdeel is van data-analyse. Het is dus geen verrassing dat SQL hiervoor een eigen functie heeft. Of je nu duplicaten opspoort, groepstotalen berekent of data filtert, de functie COUNT() helpt je daarbij.
In dit artikel laat ik je de vele manieren zien waarop COUNT() handig is: van de basissynthax tot interessantere use-cases met GROUP BY en HAVING. Overweeg ook om je in te schrijven voor onze SQL Associate Certification, een geweldige manier om te leren én je cv te versterken.
Wat is de COUNT()-functie in SQL?
De functie COUNT() retourneert het aantal rijen dat aan een criterium voldoet.
SQL COUNT()-syntaxis
De basissynthax van COUNT() is als volgt.
SELECT COUNT(column_name)
FROM table_name;
Variaties op de syntaxis bereiken verschillende doelen.
-
Met de syntaxis
COUNT(*)kun je het aantal rijen in een tabel tellen -
Met de syntaxis
COUNT(DISTINCT column)kun je het aantal unieke waarden in een kolom tellen -
Met de syntaxis
COUNT(CASE WHEN condition THEN column END)kun je het aantal waarden tellen dat aan voorwaarden voldoet.
COUNT(), gebruikt met GROUP BY, is handig om het aantal rijen te tellen dat tot elke groep behoort.
COUNT(), gebruikt met HAVING, is handig om groepen te filteren op basis van het aantal rijen dat ze hebben.
We illustreren dit met de onderstaande voorbeelden.
Voorbeelden van de SQL COUNT()-functie
Voer de code uit deze tutorial online uit en pas 'm aan.
Code uitvoerenHet aantal rijen tellen met COUNT(*)
De tabel met de naam products bevat alle producten die een bedrijf verkoopt. Met de clausule COUNT(*) kunnen we het aantal rijen in de tabel berekenen.
SELECT
COUNT(*) AS number_of_rows
FROM products
|
|
|
321 |
Unieke waarden tellen met COUNT(DISTINCT …)
Met de syntaxis COUNT(DISTINCT column) kun je het aantal unieke waarden in een kolom tellen.
Elke product heeft bijvoorbeeld een bijbehorend merk in de tabel products. We kunnen het aantal unieke producten en merken in de tabel tellen.
SELECT
COUNT(DISTINCT product_id) AS unique_product_count,
COUNT(DISTINCT brand_id) AS unique_brand_count
FROM products
|
|
|
|
321 |
9 |
Rijen tellen die aan een voorwaarde voldoen met COUNT() en CASE WHEN
Met de syntaxis COUNT(CASE WHEN condition THEN column END) kunnen we het aantal rijen berekenen dat aan een voorwaarde voldoet.
In de tabel products heeft bijvoorbeeld elk product een list_price. We kunnen berekenen hoeveel producten “expensive” zijn (een catalogusprijs van meer dan $500) of juist niet.
SELECT
COUNT(CASE WHEN list_price >= 500 THEN product_id END) AS expensive_product_count,
COUNT(CASE WHEN list_price < 500 THEN product_id END) AS cheap_product_count
FROM products
|
|
|
|
213 |
108 |
Rijen per groep tellen met COUNT() en GROUP BY
COUNT() kan met GROUP BY worden gebruikt om het aantal rijen in elke groep te vinden.
De producttabel bevat bijvoorbeeld fietsmodellen van 2016 tot 2019. Om de verdeling van de fietsen te vinden, kunnen we COUNT(product_id) en GROUP BY model_year gebruiken om het aantal producten per jaar te tellen.
SELECT
model_year,
COUNT(product_id) AS product_count
FROM products
GROUP BY model_year
|
|
|
|
2016 |
26 |
|
2017 |
85 |
|
2018 |
204 |
|
2019 |
6 |
Groepen filteren met COUNT(), GROUP BY en HAVING
In voorbeeld 4 zagen we dat COUNT() met GROUP BY kan worden gebruikt. Met de HAVING-clausule kun je groepen filteren op basis van het aantal rijen in die groep.
Om bijvoorbeeld het aantal jaren te vinden met minder dan 50 producten, kunnen we de volgende syntaxis gebruiken.
SELECT
model_year
FROM products
GROUP BY model_year
HAVING COUNT(product_id) < 50
|
|
|
2016 |
|
2019 |
Technische vereisten
COUNT() is een functie die beschikbaar is in alle moderne SQL-versies. DataCamp biedt gerichte cursussen om je SQL onder de knie te krijgen binnen de context van het databasesysteem van jouw keuze. Hier zijn een paar opties om te beginnen. Ik denk dat Oracle het meest afwijkt, omdat het specifieke functies en extra features heeft.
- Creating PostgreSQL Databases-cursus
- Introduction to SQL Server-cursus
- Introduction to Oracle SQL-cursus
Meer leren over SQL
Blijf SQL leren met DataCamp. Ik heb nog een paar andere tutorials geschreven om je op weg te helpen. Hopelijk heb je er wat aan.
Overweeg ook onze SQL Associate Certification, die volgens mij prima staat op je cv of résumé.

Als data scientist bij Tiktok en masterstudent aan GeorgiaTech heb ik een aangeboren passie voor data science. Ik heb een uniek carrièrepad uitgestippeld waarin technologie, risico en voortdurende zelfverbetering samenkomen. Tijdens mijn periode als Data Scientist bij Merchant Platform beperkte ik risico’s en bestreed ik fraude met complexe datamodellen, waarmee ik wekelijks duizenden dollars bespaarde. Ik heb mijn vaardigheden aangescherpt door talloze uren aan zelfstudie te wijden, certificaten te behalen bij gerenommeerde instellingen en me te bekwamen in onderwerpen als Deep Learning, TensorFlow en Social Network Analysis. Op DataCamp en andere onderwijsplatforms gebruik ik deze schat aan kennis om anderen te inspireren en te onderwijzen, nieuwe paden te banen binnen data science en te laten zien dat met vastberadenheid en de juiste data elk risico kan worden omgezet in een kans.
SQL COUNT() Veelgestelde vragen
Kan COUNT() alleen specifieke rijen tellen?
Ja, je kunt een WHERE-clausule gebruiken met COUNT() om alleen rijen te tellen die aan specifieke criteria voldoen. Bijvoorbeeld:
SELECT COUNT(*) FROM employees WHERE department = 'Sales';
Wat is het verschil tussen COUNT(*) en COUNT(column_name)?
COUNT(*) telt alle rijen in een tabel, inclusief rijen met NULL-waarden. COUNT(column_name) telt alleen de rijen waarin de opgegeven kolom niet NULL is.
Kan ik unieke waarden tellen met COUNT()?
Ja, je kunt unieke waarden in een kolom tellen door COUNT() te combineren met het sleutelwoord DISTINCT:
SELECT COUNT(DISTINCT department) FROM employees;
Hoe gaat COUNT() om met dubbele rijen?
Standaard telt COUNT(*) alle rijen, inclusief duplicaten. Om alleen unieke rijen te tellen, gebruik je COUNT(DISTINCT column_name).
