Вероятно това е частта, която се мъчите да разберете:
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 of
0`. - Обобщаване по отдел, сумиране на току-що изчислената стойност. Това води до отчитане на броя на анализаторите.
case
е израз, който връща стойност. sum()
просто събира тази стойност за всяка група.