Formentlig er dette den del, du kæmper for at forstå:
select deptno,
sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
from employees
group by deptno
Dette er virkelig en simpel aggregeringsforespørgsel. Det, forespørgslen gør, er:
- Se på hver række i
employees
- Hvis
jobname
er'Analyst'
tildel derefter værdien1
(dette ercase
erklæring. Otherwise, assign a value of
0`. - Aggregér efter afdeling, summer den netop beregnede værdi. Dette har den effekt, at man tæller antallet af analytikere.
case
er et udtryk, der returnerer en værdi. sum()
er simpelthen at lægge denne værdi sammen for hver gruppe.