Вероятно това е частта, която се мъчите да разберете:
select deptno,
sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
from employees
group by deptno
Това наистина е проста заявка за агрегиране. Това, което прави заявката е:
- Погледнете всеки ред в
employees - Ако
jobnameе'Analyst'след това присвоете стойността на1(това еcaseоператор. Otherwise, assign a value of0`. - Обобщаване по отдел, сумиране на току-що изчислената стойност. Това води до отчитане на броя на анализаторите.
case е израз, който връща стойност. sum() просто събира тази стойност за всяка група.