oracle多表查询和子查询练习

本文精选了多个实用的SQL查询案例,包括多表联接查询、子查询应用等,旨在帮助读者掌握复杂的数据筛选与汇总技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--1.列出至少有三个员工的所有部门和部门信息。
SELECT D.DEPTNO, D.DNAME, D.LOC, T.COUNTS
   FROM DEPT D, (SELECT DEPTNO, COUNT(*) COUNTS FROM EMP GROUP BY DEPTNO) T
  WHERE D.DEPTNO = T.DEPTNO
    AND T.COUNTS >= 3;
 
--2.列出受雇日期早于直接上级的所有员工的编号,姓名,部门名称
SELECT E.EMPNO, E.ENAME, D.DNAME
   FROM EMP E, EMP M, DEPT D
  WHERE E.MGR = M.EMPNO
    AND E.HIREDATE < M.HIREDATE
    AND E.DEPTNO = D.DEPTNO;

  
--3.列出职位为“CLERK”的员工姓名和其所在部门名称,部门人数:
SELECT e.ename,d.dname,t.counts
FROM emp e, dept d,
      (SELECT deptno de, COUNT(*) counts FROM emp GROUP BY deptno )t
WHERE e.deptno = d.deptno AND e.deptno = t.de AND e.job = 'CLERK';

--4.列出和“SCOTT”从事相同工作的所有员工及部门名称:
SELECT E.*, D.DNAME
   FROM EMP E, DEPT D
  WHERE E.DEPTNO = D.DEPTNO
    AND E.JOB = (SELECT JOB FROM EMP WHERE ENAME = 'SCOTT');

--5.列出每个部门工作的员工数量、平均工资和平均服务期限(单位为年)
SELECT DEPTNO "部门编号",
        COUNT(EMPNO) "人数",
        ROUND(AVG(SAL)) "平均薪资",
        ROUND(AVG(MONTHS_BETWEEN(SYSDATE, HIREDATE))/12) "服务年限"
   FROM EMP
  GROUP BY DEPTNO;

--6、列出各个部门的MANAGER 的最低薪金:
SELECT deptno, MIN(sal) FROM emp WHERE job = 'MANAGER' GROUP BY deptno;

--7、给任职日期超过10年的人加薪10%;
SELECT E.*, E.SAL * 1.1
   FROM EMP E
  WHERE (MONTHS_BETWEEN(SYSDATE, HIREDATE)) / 12 > 10;

转载于:https://www.cnblogs.com/huguangqin/p/7532832.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值