其实可以跳出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.sfrom 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)