Vraisemblablement, c'est la partie que vous avez du mal à comprendre :
select deptno,
sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
from employees
group by deptno
Il s'agit en fait d'une simple requête d'agrégation. Ce que fait la requête :
- Regardez chaque ligne dans
employees
- Si
jobname
est'Analyst'
puis attribuez la valeur de1
(c'est lecase
instruction. Otherwise, assign a value of
0`. - Agréger par département, en additionnant la valeur qui vient d'être calculée. Cela a pour effet de compter le nombre d'analystes.
case
est une expression qui renvoie une valeur. La sum()
additionne simplement cette valeur pour chaque groupe.