0

我正在学习 mySQL,但我有点困惑如何使用 mySQL 查询来表示...列出部门中的员工总数。

Emp(eid: integer, ename: string, age: integer, sale: real) Works(eid: integer, did: integer, pct_time: integer) Dept(did: integer, budget: real, managerid: integer)

*这是我的书正在使用的示例,但我想我只是在问有人可以帮助我使用 sum 聚合函数完成示例吗?或者我会完全用这个来表示......列出员工总数?

4

3 回答 3

1

您需要先使用加入表Dept,以便所有记录(所有部门)显示在最终结果中,那些没有员工的部门将在列表中但值为。WorksLEFT JOIN0

SELECT  a.Did, COUNT(b.DId) TotalEmployee
FROM    Dept a
        LEFT JOIN Works b
            ON a.Did = b.DId
GROUP   BY a.Did

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-04-04T12:51:16.867 回答
1

你会想要使用SUM,就像你说的那样。因此,您首先需要Join表,然后获取employee_id 行的总和。

Select Emp.eid, SUM(Emp.eid) as employee_sum From, Dept.did
Emp
LEFT JOIN Works On
Emp.eid = Works.eid
INNER JOIN Dept ON
Works.did = Dept.did
Group By Emp.eid, Dept.did
于 2013-04-04T12:53:22.337 回答
0

最简单的方法是简单地使用连接:

选择计数(E.eid)

来自 Emp E,Works W,Dept

其中(E.eid = W.eid AND D.did = W.did);

Works表将两个表链接在一起,即EmpDept。因此,此查询将仅返回部门中的员工编号。

于 2013-04-04T13:24:27.003 回答