SQL:显示和计算项目

时间:2014-03-27 21:59:01

标签: sql psql

我试图在sql中计算属于某个分支的员工,因此分支X例如有Y个员工。有两个表我需要查询数字1和2.下面。我想实现以下目标: branchno |该分支机构的工作人员数量

  1. '员工'表: staffno | fname | lname |位置|性别dob |工资| branchno

  2. '分支'表: branchno |街道|城市|邮政编码

  3. 谢天谢地

1 个答案:

答案 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意味着您将从分支获取所有行以及从工作人员获取匹配的行。