Oracle 课堂3

--4.查询部门人数大于所有部门平均人数的的部门编号,部门名称,部门人数SELECT emp.deptno,dname,count(ename) FROM emp,dept WHERE emp.deptno=dept.deptnoGROUP BY emp.deptno,dname  HAVING count(ename)>(SELECT avg(count(ename)) FROM emp ...
摘要由CSDN通过智能技术生成
--4.查询部门人数大于所有部门平均人数的的部门编号,部门名称,部门人数
SELECT emp.deptno,dname,count(ename)
FROM emp,dept
WHERE emp.deptno=dept.deptno
GROUP BY emp.deptno,dname  
HAVING count(ename)>(SELECT avg(count(ename)) FROM emp GROUP BY deptno);

--26.    显示出平均工资最高的的部门平均工资及部门名称
SELECT dname,round(avg(sal),2)
FROM emp JOIN dept ON emp.deptno=dept.deptno
GROUP BY dname
HAVING avg(sal)=(SELECT MAX(avg(sal))
                  FROM emp
                  GROUP BY deptno);
                  
13.查询大于自己部门平均工资的员工姓名,工资,所在部门平均工资,高于部门平均工资的额度。
SELECT deptno,avg(sal) a
FROM emp
GROUP BY deptno;

SELECT ename,sal,round(t.a,2),sal-round(t.a,2)
FROM emp,(SELECT deptno,avg(sal) A
          FROM emp
          GROUP BY deptno) t
WHERE emp.deptno=t.deptno and sal>t.a;


--查询大于自己部门平均工资的员工姓名,工资,所在部门平均工资,高于部门平均工资的额度。
   --部门平均工资
   SELECT deptno,count(empno),avg(sal) ps
   FROM emp
   GROUP BY deptno
   
   --部门总平均工资
   SELECT avg(t.ps)
   FROM (   SELECT deptno,count(empno),avg(sal) ps
            FROM emp
            GROUP BY deptno) t
            
  select ename,sal,(e.sal-(   SELECT avg(t.ps)
                              FROM (   SELECT deptno,count(empno),avg(sal) ps
                                       FROM emp
                                       GROUP BY deptno) t
                           )) as "额度"
  from emp e,(   SELECT deptno,count(empno),avg(sal) ps
               FROM emp
               GROUP BY deptno) t
  WHERE e.deptno=t.deptno
       and sal>t.ps
       
       
查询大于自己部门平均工资的员工姓名,工资,所在部门平均工资,高于部门平均工资的额度。
 --部门平均工资
   SELECT deptno,count(empno),avg(sal) ps
   FROM emp
   GROUP BY deptno
      
  select ename,sal,(e.sal-t.ps) as "额度"
  from emp e,(   SELECT deptno,count(empno),avg(sal) ps
               FROM emp
               GROUP BY deptno) t
  where e.deptno=t.deptno
       AND sal>t.ps
       AND e.sal-t.ps>0
       
24.    显示每位经理管理员工的最低工资,及最低工资者的姓名
select e.sal,e.ename from emp e,
(SELECT MIN(e.sal) salary,m.empno FROM emp e,emp m WHERE e.mgr = m.empno GROUP BY m.empno) l
WHERE e.sal = l.salary AND e.mgr = l.empno

--24.    显示每位经理管理员工的最低工资,及最低工资者的姓名
SELECT ename,sal FROM emp WHERE (sal,mgr) IN (SELECT MIN(sal),mgr FROM emp GROUP BY mgr);

SELECT mgr,MIN(sal) M
FROM emp
GROUP BY mgr;

SELECT ename,t.m
FROM emp,(SELECT mgr,MIN(sal) M
          FROM emp
          GROUP BY mgr) t
WHERE emp.mgr(+)=t.mgr AND sal&
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值