打印每個員工的薪水超過其所在部門所有員工平均薪水的名稱 。MySQL新手:查詢每個員工的薪水超過其部門所有員工平均工資的姓名
emp (eid: integer, ename: string, age: integer, salary: real)
works (eid: integer, did: integer, pct_time: integer)
dept (did: integer, dname: string, budget: real, managerid: integer)
這是我有:
SELECT ename FROM emp
WHERE salary > all (
SELECT AVG(salary) FROM dept, works
WHERE emp.eid = works.eid AND works.did = dept.did)
的問題是,我似乎得到誰擁有的人的名字工資超過每個工人的平均水平。我想我不需要鏈接到部門表,但是當我嘗試編輯上面的字符串時,我仍然得到相同的結果。
子查詢需要通過作品的另一個副本另一個加入到'emp':'選擇從EMP AVG(emp2.salary)作爲EMP2內部聯接Works2的上emp2.eid = works2.eid內連接上Works2的作品。 did = works.did where works.eid = emp.eid'。可能存在另一個問題,這是由於一個員工在少數部門兼職而造成的;在這種情況下,平均值將計算在所有他/她的部門中。 –