Pravděpodobně je to část, kterou se snažíte pochopit:
select deptno,
sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
from employees
group by deptno
Toto je opravdu jednoduchý agregační dotaz. Dotaz dělá:
- Podívejte se na každý řádek v
employees - Pokud
jobnameje'Analyst'pak přiřaďte hodnotu1(toto jecasevýpis. Otherwise, assign a value of0`. - Agregujte podle oddělení sečtením právě vypočítané hodnoty. To má za následek počítání počtu analytiků.
case je výraz, který vrací hodnotu. sum() jednoduše sčítá tuto hodnotu pro každou skupinu.