mysql查询部门人数大于所有部门平均人数的部门

mysql查询部门人数大于所有部门平均人数的部门,第1张

错误在于avg(count(empno))这里其实是按部门计数、按部门求平均两步查询,不能在一次子查询里实现。

其实可以跳出avg(count(,直接用count总人数除count部门数来求平均:select count(distinct empno)/count(distinct deptno)

表结构都不给出来,假设表中有姓名,课程,班级,成绩这几个字段。

方法可以给两个:

1、使用关联子查询

Select 姓名,课程,班级,成绩

From 表 a Where a.成绩>(Select avg(b.成绩) From 表 b where a.课程=b.课程 and a.班级=b.班级)

2、先按照班级和课程求平均成绩,然后进行连接查询

Select a.姓名,a.课程,a.班级,a.成绩

From 表 Inner Join (select 班级,课程,avg(成绩) 平均成绩 From 表 Group By 班级,课程) b

on a.课程=b.课程 and a.班级=b.班级 and a.成绩>b.平均成绩

select t1.*, t2.s

from emp_hiloo t1 join (select deptno, avg(salary) s from emp_hiloo group by deptno) t2

on t1.deptno=t2.deptno

where t1.salary>t2.s


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7188172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存