MYSQL de DISTINCT operator
Home

MYSQL de DISTINCT operator

MYSQL de DISTINCT operator

Het SELECT DISTINCT statement wordt gebruikt om alleen de onderlinge verschillende waarden te tonen.

Probleem

In het geval dezelfde waarde in een kolom op verschillende rijen voorkomt, willen we die waarde slechts één keer tonen.

Oplossing

Soms staan er dubbele waarden in een kolom. Het is normaal dat een tabel met personen dezelfde familienamen of voornamen kan bevatten. Dat is op zich geen probleem. Maar soms wil je alleen het aantal verschillende (distinct/onderscheiden) waarden kennen. Het DISTINCT sleutelwoord kan je gebruiken om alleen onderscheiden of verschillende waarden te retourneren. Het opnemen van DISTINCT achter SELECT zorgt ervoor dat de dubbele uitkomsten worden weggelaten.

Met de distinct clausule selecteer je geen dubbele rijen. Wat zijn dubbele rijen? Dat hangt er van af welke kolommen je selecteert (en welke collation je gebruikt). Als ik alleen de Familienaam kolom selecteer, kan ik twee rijen krijgen met dezelfde inhoud:

select Familienaam
   from Boeken
   order by Familienaam;

Door de distinct clausule toe te voegen wordt er slechts één rij met een gegeven auteur getoond:

select distinct Familienaam
from Boeken
   order by Familienaam;

Als ik in mijn select opdracht ook de Titel kolom opneem heb ik waarschijnlijk geen twee gelijke rijen meer, omdat een combinatie van een auteur en een titel gewoonlijk uniek is. In onze testdata is dat alvast zo. Daarom zullen volgende twee stukken code hetzelfde resultaat opleveren in onze databank:

select Familienaam, Titel
from Boeken
order by Familienaam;
select distinct Familienaam, Titel
from Boeken
order by Familienaam;

Opdracht

0058__BoekenSelectDistinct: Selecteer alle voornamen en namen van de schrijvers die de letter a en/of e in hun familienaam hebben staan. De lijst bevat geen dubbels en staat in alfabetische volgorde, eerst Familienaam en dan Voornaam.

Opmerking

De gebruikte collation(s) bepalen of twee rijen gelijk zijn. Je hoeft de syntax om hier de collations te specifiëren niet uit het hoofd te leren, maar weet dat ook hier de gebruikte collations aangepast kunnen worden.

JI & VN
2019-03-29 09:30:07