MYSQL跨多个表选择+使用数学运算符Average / Count

时间:2013-11-19 20:10:24

标签: mysql sql join

我有两个具有以下属性的表:

表:部门

dept_nbr

DEPT_NAME

dept_phone

dept_building

dept_mgr

表:员工

emp_nbr

emp_lname的

emp_fname

emp_phone

emp_dateofbirth

emp_date_hired

emp_nbr_of_dependents

删除emp_dept

dept_nbr = emp_dept

我需要:

每个部门

1。)总数没有。员工家属

2。)平均没有。家属 - 我在猜AVG

3。)总数没有。员工 - 我猜数(*)

有人可以帮我解决这个问题吗?以下是我的代码

  select DEPT_NAME, AVG(EMP_NBR_OF_DEPENDENTs), count(emp_fname) as Total_No_of_Employees from dept,employee where DEPT_NBR = EMP_DEPT group by DEPT_NAME;

第二部分:

包括员工少于50人的部门

select DEPT_NAME, AVG(EMP_NBR_OF_DEPENDENTs), count(emp_fname) as Total_No_of_Employees from dept,employee where DEPT_NBR in (select EMP_DEPT from employee where count(emp_fname)<50) group by DEPT_NAME ;

我尝试了上述内容并收到错误1111

谢谢堆

2 个答案:

答案 0 :(得分:0)

SELECT dept_name,SUM(emp_nbr_of_dependents),AVG(emp_nbr_of_dependents),COUNT(emp_nbr) 
FROM deptartment JOIN employee ON dept_nbr=emp_dept
GROUP BY dept_name
HAVING COUNT(emp_nbr)<50

答案 1 :(得分:0)

可以在一个选择中组合更多聚合函数。

select DEPT_NAME, 
  sum(EMP_NBR_OF_DEPENDENTs) employee_dependents_sum,
  AVG(EMP_NBR_OF_DEPENDENTs) avg_nbr_dependents, 
  count(emp_nbr) employee_count
from dept,employee 
where DEPT_NBR = EMP_DEPT 
group by DEPT_NAME
having employee_count < 50;
WHERE之前应用

GROUP BY部分,然后在结果上应用HAVING

http://dev.mysql.com/doc/refman/5.5/en/select.html