虽然我在 SQL 或 MySQL 方面不是一个完整的新手,但我注意到还有很多东西需要学习。经过多次尝试、阅读和搜索,我无法理解这一点。如果您能提供任何指点,我将不胜感激。
我已将实际数据和表格简化为以下内容。
有两个表是相关的:Staff 和 Work。它们包含各种项目中的员工数据。
职员:
ID Name Unit
1 Smith Chicago
2 Clarke London
3 Hess Chicago
工作:
StaffID ProjectID
1 10
2 10
3 10
1 20
2 30
3 40
1 50
3 50
目标:
将所有有芝加哥员工的项目与该项目中所有员工的数量进行分组。
预期结果:
Project Staff count
10 3
20 1
40 1
50 2
所以项目 30 没有列出,因为它的成员不是来自芝加哥。
我下面的查询显然是错误的。它只计算那些来自芝加哥的项目成员,而不是整个项目人员。
SELECT
work.projectID as Project, COUNT(*) as "Staff count"
FROM
staff
JOIN
work ON staff.ID=work.staffID
WHERE
unit="Chicago"
GROUP BY
work.projectID;