使用集合运算符查询来查找给定问题的结果

Posted

技术标签:

【中文标题】使用集合运算符查询来查找给定问题的结果【英文标题】:using set operator query to find the result of the given questions 【发布时间】:2020-07-10 17:40:31 【问题描述】:

使用集合运算符显示每个部门的 DEPTNO,SUM(SAL),每个职位的 JOB,SUM(SAL) 和总工资。

使用 Set Operator 按顺序显示在 deptno 20、10、30 工作的员工中的 JOB 和 Deptno。

对于第一个问题,我的查询是这样的:

select e.deptno,to_char(null),e.sum(sal),
from emp e
UNION
select d.deptno,d.job,d.sum(sal)
from emp d
group by deptno,job;

我不知道如何做第二个。 SET 运算符可以是 union,intersection,minus...

【问题讨论】:

【参考方案1】:

第一个问题的措辞对我来说不是 100% 清楚,但查询应该是:

select deptno, '', sum(sal) from emp group by deptno
union
select deptno, job, sum(sal) from emp group by deptno, job

对于第二个问题,您可以再次使用UNION。例如:

select job, deptno
from (
  select job, deptno, 2 as o from emp where deptno = 10
  union
  select job, deptno, 1 from emp where deptno = 20
  union 
  select job, deptno, 3 from emp where deptno = 30
) x
order by o

【讨论】:

@MAYANKRAJ 如果您有更多要写的问题,请提出一个新问题。

以上是关于使用集合运算符查询来查找给定问题的结果的主要内容,如果未能解决你的问题,请参考以下文章

标准查询运算符---LINQ

如何在不使用集合运算符的情况下在 oracle 中查找不匹配的行并加入 & 还查询特定行的不匹配列名

表的集合操作

5.集合运算

5.集合运算

关系代数演算So Easy