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.
--