2013-04-04 20 views
0

我正在學習mySQL,我有點困惑如何使用mySQL查詢來說...列出部門中員工的總數。使用mysql隊列來列出學生人數

的Emp(EID:整數,爲ename:字符串年齡:整數,工資:真) 作品(EID:整數,做的:整數,pct_time:整數) 部門(DID:整數,預算:真正的,經理ID:整數)

*這是我的書正在使用的例子,但我想我只是問,有人可以幫助我通過總和聚合函數來演示一個例子嗎?或者,我會完全用這個來說......列出員工總數?

回答

1

你需要加入表DeptWorks,以便所有記錄首先使用LEFT JOIN各部門)的最終結果顯示,那些沒有員工的部門將在名單上,但與價值0

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

爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:

+0

我不確定使用別名是最好的主意,它可能會令人困惑。只是一個想法 – 2013-04-04 12:53:50

1

你會想用SUM,像你說的。所以,你首先需要Join這個表,然後取一個employee_id行的SUM。

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 
0

做到這一點是最簡單的辦法簡單地用聯接:

SELECT COUNT(E.eid)

把Emp E,工程W,部門d

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

作品表將連接兩個表一起,即的Emp。 因此,此查詢將僅返回部門中的員工數目。