如何在两个表之间执行JOIN后计算不同部门的成员数量?

问题描述 投票:0回答:2

我有一张桌子Emp和另一张桌子Dept

这是表Emp

enter image description here

这是表部门

enter image description here

我必须执行的查询是显示超过5个工作人员的所有部门(即DeptName)的平均工资(即sal)。因此,我们必须做一个JOIN或其他东西,并在这里与DeptID匹配DeptID等。

这真的令人困惑,我不明白该怎么做。

sql join count
2个回答
0
投票

你可以使用group by with having子句查询。

Dept_id分组和使用having子句检查计数。

SELECT
  SUM(E.Sal) / COUNT(E.Dept_id) AS Avg_Sal,
  E.Dept_Id
FROM EMP E
JOIN Dept D
  ON D.DeptId = E.Dept_Id
GROUP BY E.DeptId
HAVING COUNT(E.Dept_Id) > 5

0
投票
Select 
DeptName,
AVG(sal) as averageSalary,
Count(EmpId) as NumberofEE
FROM Emp e
/*Left Join Because there are Nulls in the Dept_Id each Emp should belong to 
1 dept*/
LEFT JOIN Dept d on e.Dept_Id = d.DeptId

GROUP BY 
DeptName

Having Count(EmpId)> 5

这将为您提供超过5个工作人员的所有部门(即DeptName)的平均工资(即sal)

如果我对你的要求是正确的。

© www.soinside.com 2019 - 2024. All rights reserved.