Quiz per niveau

Beantwoord eerst de vraag, daarna zie je feedback en het juiste antwoord.

SQL quiz: makkelijk / normaal / moeilijk

Makkelijk (10 vragen)

1. Welke clause gebruik je om rijen te filteren?

AORDER BY
BWHERE
CGROUP BY
Correct: WHERE.

2. Welke clause sorteert resultaten?

AORDER BY
BHAVING
CFROM
Correct: ORDER BY.

3. Wat betekent DESC?

AOplopend
BAflopend
CUniek
DESC = aflopend sorteren.

4. Welke functie berekent een gemiddelde?

ACOUNT
BSUM
CAVG
AVG geeft het gemiddelde.

5. Waarvoor gebruik je GROUP BY?

AData groeperen
BData sorteren
CData verwijderen
GROUP BY groepeert rijen.

6. Welke clause filtert op aggregaties?

AWHERE
BHAVING
CSELECT
HAVING filtert groepen.

7. Welke keyword geeft unieke waarden?

AUNIQUE
BDISTINCT
CONLY
Gebruik DISTINCT.

8. Welke operator gebruik je met % voor tekst?

AIN
BBETWEEN
CLIKE
LIKE met % en _.

9. Wat is juiste check op lege waarde?

A= NULL
BIS NULL
C== NULL
Gebruik IS NULL.

10. Welke functie telt rijen?

ACOUNT
BMIN
CMAX
COUNT telt rijen/waarden.

Normaal (10 vragen)

1. Top 5 hoogste omzet?

AORDER BY omzet ASC LIMIT 5
BORDER BY omzet DESC LIMIT 5
CGROUP BY omzet LIMIT 5
DESC + LIMIT 5.

2. Juiste SQL-volgorde?

ASELECT FROM WHERE GROUP BY HAVING ORDER BY
BSELECT WHERE FROM ORDER BY
CFROM SELECT WHERE
Dat is de standaardvolgorde.

3. Wanneer HAVING gebruiken?

ABij aggregaties
BVoor sorteren
CVoor joins
HAVING is voor geaggregeerde uitkomsten.

4. Klanten per land tellen?

ASELECT land, COUNT(*) FROM klanten GROUP BY land
BSELECT COUNT(land) FROM klanten
CSELECT land FROM klanten HAVING COUNT(*)
Groepeer op land.

5. IN ('NL','BE') betekent?

ABereikfilter
BEén van deze waarden
CSortering
IN controleert op lijstwaarden.

6. Omzet tussen 1000 en 5000?

ABETWEEN 1000 AND 5000
BIN (1000,5000)
CLIKE 1000-5000
BETWEEN is bereikfilter.

7. SUM(omzet) zonder GROUP BY geeft?

ASom per rij
BÉén totaal
CAltijd fout
Resultaat is één totaalrij.

8. Gemiddelde omzet > 1000 filteren?

AWHERE AVG(omzet)>1000
BHAVING AVG(omzet)>1000
CORDER AVG(omzet)
Gebruik HAVING bij AVG.

9. Sorteren op land en omzet dalend?

AORDER BY land, omzet DESC
BORDER BY omzet DESC land
CGROUP BY land, omzet DESC
Meerdere kolommen in ORDER BY.

10. COUNT(DISTINCT klant_id) doet wat?

ATelt alle rijen
BTelt unieke klanten
CSomt ids op
DISTINCT + COUNT telt unieke waarden.

Moeilijk (10 vragen)

1. Gemiddelde omzet per land > 5000?

A... WHERE AVG(omzet)>5000 GROUP BY land
B... GROUP BY land HAVING AVG(omzet)>5000
C... ORDER BY AVG(omzet)>5000
GROUP BY + HAVING AVG.

2. Waar over WHERE en HAVING?

AWHERE na HAVING
BWHERE vóór groeperen, HAVING erna
CGeen verschil
Precies deze volgorde.

3. Juiste combinatie met sorteren op som?

AGROUP BY land ORDER BY SUM(omzet) DESC
BORDER BY land GROUP BY SUM(omzet)
CHAVING ORDER BY GROUP
Eerst groeperen, dan sorteren.

4. Waarom alias AS totale_omzet?

ALeesbaarheid
BVerplicht in SQL
CAlleen performance
Alias maakt output duidelijk.

5. Fout in SELECT land, SUM(omzet) FROM sales;

AGeen fout
Bland moet in GROUP BY
CSUM mag niet
Niet-geaggregeerde kolommen moeten in GROUP BY.

6. ORDER BY 2 DESC betekent?

ATweede geselecteerde kolom dalend
BTwee kolommen
CTwee rijen
2 verwijst naar kolompositie.

7. Landen met meer dan 20 orders?

AGROUP BY land HAVING COUNT(*) > 20
BWHERE COUNT(*) > 20 GROUP BY land
CORDER BY COUNT(*) > 20
COUNT-filter hoort in HAVING.

8. Effect van WHERE omzet > 0 vóór GROUP BY?

ANegatieve omzet uitgesloten
BGeen effect
CHAVING stopt
WHERE filtert rijen vóór aggregatie.

9. Top 3 landen op totale omzet?

AGROUP BY land ORDER BY SUM(omzet) DESC LIMIT 3
BORDER BY land GROUP BY omzet LIMIT 3
CHAVING SUM(omzet) LIMIT 3
Correcte combinatie is GROUP BY + ORDER BY + LIMIT.

10. Wanneer subquery handig met GROUP BY?

ABij meerstaps-vergelijkingen
BNooit
CAlleen SELECT *
Subqueries helpen bij complexe analyse.