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
jobname
je'Analyst'
pak přiřaďte hodnotu1
(toto jecase
výpis. Otherwise, assign a value of
0`. - 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.