Skip to main content

De Wereld-Database - Distinct

Deze les leren we wat distinct betekent en hoe je het kunt gebruiken.

In de afgelopen les hebben we ook gekeken naar de tabel countrylanguage.

TABEL countrylanguage  
Kolomnaam Beschrijving Voorbeeld
CountryCode Code NLD
IsOfficial t of f t = true en f = false (dus oficiele taal dan true)
Language taal Dutch
Percentage Percentage dat de taal spreekt 9.5

Stel je nu eens voor dat wel alle talen die er zijn zouden willen afdrukken, dan kunnen we met de volgende query alle talen afdrukken:

SELECT Language
FROM countrylanguage

Als je dit doet dan zie je dat er 984 regels (rows) worden getoond. Zijn er dan echt 984 talen?

Sorteer je resutlaat van de vorige query en kijk nog eens goed naar eht resutlaat. Wat zie je?

Je kunt een query ontdubellen met het statement distinct.

Voer de voglende query uit:

SELECT distinct Language
FROM countrylanguage
order by Language asc

Wat zie je nu, hoeveel regels worden er getoond? Zie je nu wat er gebeurt door het toevoegen van distinct ?

Opdracht 1

Bekijk de volgende twee queries:

SELECT count(Language)
FROM countrylanguage
order by Language asc

en

SELECT count(distinct Language)
FROM countrylanguage
order by Language asc

Wat is komt er uit beide queries? Schrijf het antwoord op je antwoordenblad. Beide queries hebben een ander uitkomt. Leg in je eigen woorden uit wat het verschil is en hoe het wordt veroorzaakt.

Opdracht 2

Hoeveel continenten staan er in de database? Schrijf de query die je hebt gebruikt op je anwtoordenblad.

Opdracht 3

Hoeveel GovernmentForm staan er in de World Database? Schrijf de query die je hebt gebruikt op je anwtoordenblad.

Opdracht 4

Hoeveel talen (officieel en niet-officieel) worden er op het continent 'Europe' gesproken? Deze vraag heb je in de vorige les ook al beantwoord. Kijk nog eens naar deze query? Zou je hier een distinct kunnen gebruiken? Wat is nu je antwoord en waarom verschilt dat van je eerdere antwoord?

Zet de (nieuwe) query waarmee je dit antwoord hebt bepaald op je antwoordenblad. Noteer ook de uitkomst.

Opdracht 5

Bekijk de volgde twee queries waarin alle hoofdsteden uit de tabel country worden geteld.

SELECT  count(distinct Capital) from country

en 

SELECT  count(Capital) from country

De uitkomstvan beide queries is gelijk. Beschrijf waaromd at zo is op je antwoordenblad.

Opdracht 6

Stel je hebt een tabel leerling waarn de cijfers staan van alle leerlingen voor het vak SQL. Stel de tabel heeft 200 leerlingen.

Met de query

select cijfer from leerling 

zie je alle cijfers die er zijn gehaald. Deze query geeft 24 regels als resultaat.

Stel je maakt de voglende query

select distinct cijfer from leerling

Enigsinds verbaasd zie je dat het resultaat van deze query 10 is. Je ziet dus één regel en de waarde is 10.

Wat betekent dit? Schrijf je antwoord op het antwoordenblad.

Opgave 7

Hoeveel waarden kan de kolom IsOfficial uit de tabel countrylanguage hebben? Welke waarden zijn dat?

Schrijf je query en het resutlaat op je antwoordenblad.

Opgave 8

Voer de volgende query uit:

SELECT distinct substring(Name,1,1)
from Country
order by Name asc

Let op, substring(Name,1,1) geeft de eerste letter van Name terug. Kijk goed naar het antwoord, mis je wat? Leg uit wat het antwoord betekent; welke conclussie kun je hieruit trekken?

Schrijf het antwoord op je antwoordenblad.

--