我试图在sql中计算属于某个分支的员工,因此分支X例如有Y个员工。有两个表我需要查询数字1和2.下面。我想实现以下目标: branchno |该分支机构的工作人员数量
'员工'表: staffno | fname | lname |位置|性别dob |工资| branchno
'分支'表: branchno |街道|城市|邮政编码
谢天谢地
答案 0 :(得分:1)
这是一个非常基本的查询,如果您在解决问题时遇到问题,请逐步分解:
你想要得到什么?特定分支机构中的人数。你如何选择要显示的信息?使用select
语句。
在展示信息之前,您想对这些信息做些什么?您希望使用count()
聚合函数来计算它。
您从哪里获取数据?使用from
语句选择的表格。
最后,你只想从一个特定的分支,所以你做什么?您可以使用where
子句过滤结果。
将所有内容放在一起就可以得到:
SELECT COUNT(staffno) FROM Staff WHERE branchno = 1
如果您想要编号为1的分支。
编辑:我刚刚注意到您对没有员工的分支机构发表的评论,考虑到这一点,您也需要分支表。
SELECT b.branchno, COUNT(staffno) AS StaffCount FROM branch b
LEFT JOIN staff s ON b.branchno = s.branchno
-- WHERE b.branchno = 1 -- optional filter
GROUP BY b.branchno
在表之间使用left join
意味着您将从分支获取所有行以及从工作人员获取匹配的行。