12.24日作业

– 01查询部门平均工资在2500元以上的部门名称及平均工资。
– SELECT DNAME,avg
– FROM dept d JOIN
– (SELECT AVG(SAL) avg,DEPTNO
– FROM emp GROUP BY DEPTNO) a
– ON d.DEPTNO=a.DEPTNO
– WHERE avg > 2500

– 02查询员工岗位中不是以“SA”开头并且平均工资在2500元以上的岗位及平均工资,并按平均工资降序排序。
– SELECT JOB,avg
– FROM
– (SELECT JOB,AVG(SAL) avg
– FROM emp
– GROUP BY JOB) a
– WHERE avg > 2500
– AND a.JOB NOT LIKE (‘SA%’)
– ORDER BY avg DESC

– 03查询部门人数在2人以上的部门名称、最低工资、最高工资,并对求得的工资进行四舍五入到整数位。
– SELECT DNAME,n,x
– FROM dept e JOIN
– (SELECT DEPTNO,COUNT(*) s,
– MAX(SAL) x,MIN(SAL) n
– FROM emp GROUP BY DEPTNO) a
– ON e.DEPTNO=a.DEPTNO
– WHERE s>2

– 04查询岗位不为SALESMAN,工资和大于等于2500的岗位及每种岗位的工资和。
– SELECT a.JOB,s
– FROM (SELECT JOB,SUM(SAL) s FROM emp GROUP BY JOB) a
– WHERE a.JOB NOT LIKE (‘SALESMAN’)
– AND s>2500

– 05显示经理号码和经理姓名,这个经理所管理员工的最低工资,没有经理的KING也要显示,
– 不包括最低工资小于3000的,按最低工资由高到低排序。
– SELECT m.EMPNO,m.ENAME
– FROM emp e LEFT JOIN emp m
– ON e.MGR= m.EMPNO
– GROUP BY m.EMPNO,m.ENAME
– HAVING MIN(e.SAL)<3000
– ORDER BY MIN(e.SAL) DESC

– 06查询工资高于编号为7782的员工工资,并且和7369号员工从事相同工作的员工的编号、姓名及工资。
– SELECT EMPNO,ENAME,SAL
– FROM emp
– WHERE SAL>(SELECT sal FROM emp WHERE EMPNO=7782)
– AND JOB in(SELECT JOB FROM emp WHERE EMPNO=7369)

– 07查询工资最高的员工姓名和工资。
– SELECT ENAME,MAX(sal)
– FROM emp

– 08查询部门最低工资高于10号部门最低工资的部门的编号、名称及部门最低工资。
– SELECT a.DEPTNO,d.DNAME,a.q
– FROM (SELECT MIN(SAL) q,DEPTNO FROM emp GROUP BY DEPTNO) a,
– (SELECT MIN(SAL) w FROM emp WHERE DEPTNO=10) b,
– dept d
– WHERE a.deptno=d.deptno
– AND q>w

– 09查询员工工资为其部门最低工资的员工的编号和姓名及工资。
– SELECT e.EMPNO,e.ENAME,e.SAL
– FROM emp e JOIN (SELECT MIN(SAL) c FROM emp GROUP BY DEPTNO) a
– ON e.SAL=a.c

– 10显示经理是KING的员工姓名,工资。
– SELECT e.ENAME,e.SAL
– FROM emp e JOIN emp m
– ON e.MGR=m.EMPNO
– WHERE m.ENAME=‘KING’

– 11显示比员工SMITH参加工作时间晚的员工姓名,工资,参加工作时间。
– SELECT ENAME,SAL,HIREDATE
– FROM emp
– WHERE HIREDATE>
– (SELECT HIREDATE h FROM emp WHERE ENAME=‘SMITH’)

– 12使用子查询的方式查询哪些职员在NEW YORK工作。
– SELECT ENAME
– FROM emp e JOIN dept d
– ON e.DEPTNO=d.DEPTNO
– WHERE d.LOC=‘NEW YORK’

– 13写一个查询显示和员工SMITH工作在同一个部门的员工姓名,雇用日期,查询结果中排除SMITH。
– SELECT e.ENAME,e.HIREDATE
– FROM emp e JOIN (SELECT DEPTNO FROM emp WHERE ENAME=‘SMITH’) d
– ON e.DEPTNO=d.DEPTNO
– AND e.ENAME <>‘SMITH’

– 14写一个查询显示其工资比全体职员平均工资高的员工编号、姓名。
– SELECT e.EMPNO,e.ENAME
– FROM emp e JOIN (SELECT AVG(SAL) a FROM emp ) d
– ON e.sal>d.a

– 15显示部门名称和人数
– SELECT DNAME,COUNT(*)
– FROM emp e JOIN dept d
– ON e.DEPTNO=d.DEPTNO
– GROUP BY e.DEPTNO

– 16显示每个部门的最高工资的员工
– SELECT ENAME
– FROM emp e JOIN (SELECT MAX(SAL) a FROM emp GROUP BY DEPTNO) d
– ON e.SAL=d.a

– 17显示出和员工号7369部门相同的员工姓名,工资
– SELECT ENAME,SAL
– FROM emp e JOIN (SELECT DEPTNO a FROM emp WHERE EMPNO=7369) d
– ON DEPTNO=a

– 18显示出和姓名中包含“W”的员工相同部门的员工姓名
– SELECT ENAME
– FROM emp e JOIN (SELECT DEPTNO a FROM emp WHERE ENAME LIKE ‘%W%’) d
– ON DEPTNO=a

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值