集合 |
多个查询语句有可能取冰姐,交集,差集。
-->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个,每一个参数为一种组合。