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
jobnameer'Analyst'tildel derefter værdien1(dette ercaseerklæring. Otherwise, assign a value of0`. - 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.