Oracle数据库集合运算与高级分组函数

有些话、适合烂在心里 提交于 2020-05-03 21:09:10
集合

 

 

  多个查询语句有可能取冰姐,交集,差集。

  -->union 取并集去重

  -->union all 取并集不去重

  -->minus 取差集,第一个查询语句减去第二个查询语句的共同的

  -->intersect 取交集,取两个查询语句的公共部分

练习1:查询10号部门的员工信息,查询20号部门的员工信息,取并集不去重

  select * from emp where deptno=10

  union all

  select * from emp where deptno=20;

  **:对于集合排序我们需要写在后一个查询语句,排序的字段必须使用select语句明确指定的字段名。

  练习:查询10号和20号的员工信息,查询20号和30号的员工部门信息,取交集并且按员工编号排序。

    select ename,deptno,empno from emp where deptno in(10,20)

    intersect

    seleect ename,deptno,empno from emp where deptno in(20,30) order by empno;

 

高级分组函数

 

 

  -->rollup(p1,p2,p3.......);参数n个,共分n+1组。先按照所有参数分组,然后按照从后往前依次少一个参数进行分组。

 reg:先按照p1,p2,p3分组,在按照p1,p2分组,在按照p1分组,最后一张表为一组。

  -->cube(p1,p2,p3);参数有n个,组合有2^n个

  -->grouping sets(p1,p2,p3);参数有n个,组合有n个,每一个参数为一种组合。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!