Có lẽ, đây là phần mà bạn đang khó hiểu:
select deptno,
sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
from employees
group by deptno
Đây thực sự là một truy vấn tổng hợp đơn giản. Những gì truy vấn đang làm là:
- Xem từng hàng trong
employees
- Nếu
jobname
là'Analyst'
sau đó gán giá trị của1
(đây làcase
câu lệnh. Otherwise, assign a value of
0`. - Tổng hợp theo bộ phận, tổng hợp giá trị vừa tính được. Điều này có tác dụng đếm số lượng nhà phân tích.
case
là một biểu thức trả về một giá trị. sum()
chỉ đơn giản là cộng giá trị đó cho mỗi nhóm.