Cursussen/Courses Codesnippets     Top 
SQL select - Groeperen


Groeperen
Om het aantal records te tellen kan je de functie "count()" gebruiken. Hierbij worden alle records geteld, ook die met dezelfde inhoud (bv. alle steden).
select count(city) 
from customer
Als je wil weten hoeveel VERSCHILLENDE steden er in de tabel customer aanwezig zijn moet je het woord "DISTINCT" gebruiken. Bij het uitvoeren van de query wordt er dan geen rekening gehouden met dubbel voorkomende stadsnamen.
select count(distinct city) 
from customer
Als je wil weten welke steden het nu juist zijn kan je de query hieronder laten uitvoeren.
select distinct city 
from customer
Hierbij weet je nog niet hoeveel keer een bepaalde naam van een stad voorkomt.
Om een combinatie van deze twee query's te kunnen maken moet je de gegevens eerst laten groeperen.
select city, count(city) 
from customer 
group by city
Het query statement moet dan uitgebreid worden met "group by". Telkens als je een statistische functie (COUNT, SUM, AVG) gebruikt moet je de gegevens eerst laten groeperen op alle andere velden die na het woord "select" zijn opgegeven.
select wine_name, year, count(year)
from wine 
where upper(wine_name) = 'WOODESTOCK' 
group by wine_name, year
In de "where" clausule kan je geen statistische functie gebruiken. Wil je toch een voorwaarde opgeven dan moet je het woord "having" na de "group by" regel opgeven.
select wine_name 
from wine 
group by wine_name 
having avg(year) > 1988
In dit voorbeeld worden de wijnen geselecteerd met een gemiddelde ouderdom groter dan 1988.


X

Paragrafen

Groeperen