`

Oracle表连接与子查询

阅读更多

--1、求部门中哪些人的薪水最高

select ename,sal from emp
join (select max(sal) max_sal,deptno from emp group by deptno) t
on (emp.sal = t.max_sal and emp.deptno=t.deptno);

 
--2、求部门平均薪水的等级

select deptno,avg_sal,grade from
(select deptno,avg(sal) avg_sal from emp group by deptno) t
join salgrade s on (t.avg_sal between s.losal and s.hisal);

 
--3、求部门平均的薪水等级

select deptno, avg(grade) from
(select deptno,ename,grade from emp join salgrade s on (emp.sal between s.losal and s.hisal)) t
group by deptno;

 

--4、雇员中有哪些人是经理人

select ename from emp where empno in (select mgr from emp);

 

--5、不准用组函数,求薪水的最高值

select distinct sal from emp where sal not in
(select distinct e1.sal from emp e1 join emp e2 on (e1.sal < e2.sal))

 
--6、求平均薪水最高的部门的部门编号

㈠
select deptno,avg_sal
from (select avg(sal) avg_sal,deptno from emp group by deptno)
where avg_sal = 
(select max(avg_sal)
	from (select avg(sal) avg_sal,deptno from emp group by deptno)
)
㈡
select deptno,avg_sal
from (select avg(sal) avg_sal,deptno from emp group by deptno)
where avg_sal = 
(select max(avg(sal)) from emp group by deptno)

 
--7、求平均薪水最高的部门的部门名称

select dname from dept where deptno =
(
  select deptno from
    (select avg(sal)avg_sal,deptno from emp group by deptno)
  where avg_sal =
    (select max(avg_sal) from
      (select avg(sal) avg_sal,deptno from emp group by deptno)
    )
)

 

--8、求平均薪水最高的等级最低的部门的部门名称

select dname,t1.deptno,grade,avg_sal from
(
  select deptno,grade,avg_sal from
  (select deptno, avg(sal) avg_sal from emp group by deptno) t
  join salgrade s on (t.avg_sal between s.losal and s.hisal)	
) t1
join dept on (t1.deptno = dept.deptno)
where t1.grade = 
(
  select min(grade) from
  (
    select deptno,grade,avg_sal from
    (select deptno, avg(sal) avg_sal from emp group by deptno) t
    join salgrade s on (t.avg_sal between s.losal and s.hisal)
  )
)


--9、求部门经理人中平均薪水最低的部门名称

暂无代码

 
--10、求比普通员工的最高薪水还要高的经理人名称

select ename from emp
where empno in (select distinct mgr from emp where mgr is not null)
and sal >
(
  select max(sal)from emp where empno not in
  (select distinct mgr from emp where mgr is not null)
)

 

分享到:
评论

相关推荐

    oracle表连接和子查询实例

    ### Oracle 表连接和子查询实例解析 #### 一、最大薪资部门的员工信息 **SQL语句**: ```sql SELECT ename, sal FROM emp JOIN (SELECT MAX(sal) max_sal, deptno FROM emp GROUP BY deptno) t ON (emp.sal = t....

    oracle sql 多表连接和子查询

    oracle sql 多表连接和子查询 oracle sql 多表连接和子查询

    sql综合查询例子(oracle select group 子查询 表连接)

    oracle select group 子查询 表连接

    Oracle连接查询子查询以及存储过程触发器讲解

    在Oracle中,连接查询和子查询以及存储过程与触发器是数据库管理与开发中的核心概念,下面将对这些主题进行深入讲解。 首先,让我们探讨**连接查询**。在数据库操作中,连接查询用于合并两个或更多表的数据,根据...

    ORACLE_多表连接与子查询2[定义].pdf

    在Oracle数据库系统中,多表连接与子查询是SQL查询中的关键概念,它们允许用户从多个相关表中获取复杂的数据信息。以下是对这些概念的详细解释: 1. **多表连接**: - **等值连接(Equijoin)**:这是最基本的连接...

    orcale表连接和子查询

    在Oracle中,表连接和子查询是两种关键的查询技术,用于从多个表中获取数据和执行复杂的逻辑。 首先,我们来看看表连接。表连接允许我们将两个或多个相关表的数据合并在一起,以便在一个查询中同时获取多个表的信息...

    Oracle多表连接练习

    Oracle数据库中的多表连接是数据库...通过这些练习,我们能够掌握Oracle中的多表连接、子查询、聚合函数如`COUNT()`和`AVG()`,以及时间比较和条件过滤等高级查询技术。这些技能对于理解和处理复杂数据库查询至关重要。

    oracle连接查询SQL性能测试

    4. **子查询与连接的比较**:在某些情况下,子查询可能比连接更高效,反之亦然。文章可能比较了两者在不同场景下的性能表现。 5. **并行查询**:Oracle支持并行执行查询,这可以在大型数据集上提高性能。不过,过度...

    ORACLE多表查询优化

    开发者可以使用其他查询方式,例如使用子查询或 EXISTS 语句来替代多表连接查询。 6. 优化数据统计 数据统计是数据库性能的关键。开发者可以使用不同的统计方法,例如使用索引、分区表、物化视图等来提高数据统计...

    Oracle sql语句多表关联查询

    本文将详细介绍 Oracle SQL 语句多表关联查询的知识点,包括字符串和数字的比较、分组查询、HAVING 子句、查询顺序、Oracle 中的伪列、子查询和表连接等。 一、字符串和数字的比较 在 Oracle 中,字符串和数字可以...

    MLDN魔乐科技_Oracle课堂11_子查询

    5. **子查询与连接的区别**: - **子查询**:通常更灵活,适用于一次性查询,但可能效率较低。 - **连接(JOIN)**:适合处理两个或更多表之间的关系,效率通常高于子查询,但结构较复杂。 在"MLDN魔乐科技JAVA...

    易语言连接ORACLE数据库查询报表

    查询可以是简单的SELECT语句,也可以是复杂的联接、子查询等。 5. **处理查询结果**:发送SQL语句后,可以使用“接收数据行”命令获取查询结果集的一行数据,再通过“数据列数目”和“数据列值”等命令获取列信息和...

    Oracle基本功

    ### Oracle表连接与子查询 #### 求部门中薪水最高的人 通过连接查询找出每个部门薪水最高的人,这里使用了`JOIN`语句和`GROUP BY`子句来分组部门并找到每组的最大薪水。 ```sql SELECT ename, sal FROM emp JOIN ...

    MLDN魔乐科技JAVA培训_Oracle课堂11_子查询.rar

    - **相关子查询**:主查询与子查询之间存在关联,子查询的结果依赖于主查询的行。 - **分组子查询**:在GROUP BY和HAVING子句中使用,用于对子查询结果集进行分组和过滤。 2. **子查询的应用场景**: - **筛选...

    oracle表空间容量查询

    - **子查询**: - 第一个子查询(`free`):计算每个表空间中未使用的空间总量(单位为MB)。 - 第二个子查询(`total`):计算每个表空间的数据文件总量(单位为MB)。 - **连接条件**:通过`free.tablespace_...

    oracle子查询PPT课件.ppt

    * 子查询可以与其他查询技术结合使用,例如:连接、子查询、视图等。 Oracle子查询是SQL查询语言中的一种重要技术,可以帮助开发者解决复杂的查询问题。但是,子查询也需要遵守一定的语法和规则,以避免出现错误和...

    oracle子查询相关帮助

    - 重写为连接:某些情况下,子查询可以通过JOIN操作重写,可能更高效。 - 分解复合子查询:大型子查询可以分解成多个小的子查询,分别处理,然后组合结果。 6. **案例分析**: - 查找销售最高和最低的产品:通过...

    Oracle初级(子查询).doc

    这里,子查询`(SELECT deptno, COUNT(empno) ct FROM emp GROUP BY deptno)`统计每个部门的员工数,然后与dept表连接,显示部门名称和人数。 子查询有多种类型,包括单列子查询、单行子查询、多行子查询: - 单...

    Oracle数据库应用教程--子查询与高级查询.pptx

    Oracle数据库的子查询和高级查询是数据库管理中的关键技能,特别是在复杂的SQL查询中。子查询是一种在主要查询(外部查询)内部嵌套另一个查询(内部查询或子查询)的方法,用于提供外部查询所需的数据或条件。子...

Global site tag (gtag.js) - Google Analytics