一、集合
  多个查询语句,有可能取并集,交集,差集,
     union:取两个查询语句的并集,去重
     union all:去两个查询语句的并集,不去重
     minus:取两个查询语句的差集,第一个查询语句减去第二个查询语句中的共同部分
     intersect:取两个查询语句的公共部分(交集)

--练习:查询10号部门的员工信息 2.查询20号部门的员工信息 3.取并集,不去重select * from emp where deptno=10 union all select * from emp where deptno=20;
--练习:1.查询10号和20号的员工信息
--     2.查20号和30号部门的信息
--     3.取并集,去重 ;取交集;取差集
--     4.select * from emp where deptno in(10,20) union select * from emp where deptno in(20,30); select * from emp where deptno in(10,20) intersect select * from emp where deptno in(20,30);select * from emp where deptno in(10,20) minus select * from emp where deptno in(20,30);--练习:1.查询10,20号部门的员工的员工编号,员工姓名,职位2.查询30号部门的员工的员工编号,员工姓名,工资
--      3.取并集,去重(注意,两条查询的列数必须相同,可以用null补位)select empno,ename,job,null,deptno from emp where deptno in (10,20)union select empno,ename,null,sal,deptno from emp where deptno = 30 order by deptno;--练习: 1.查询10,20号部门员工编号,员工姓名,职位,部门号
--     2. 查询30号部门号的员工编号,月薪,奖金,入职日期,部门号,3.取并集select empno,ename,job,null,null,null,deptno from emp where deptno in (10,20)union select empno,null,null,sal,comm,hiredate,deptno from emp where deptno = 30 order by deptno;

二、集合排序操作
     order by 子句写在后一个查询语句中,要求排序的字段必须使用select子句中明确的字段名

准备数据集

  drop table salestable;     create table salestable(year_id number not null,month_id number not null,day_id number not null,sales_value number(10,2) not null);insert into salestable select trunc(DBMS_RANDOM.value(2015,2018)) as year_id,   --2015~2017trunc(DBMS_RANDOM.value(1,13)) as month_id,trunc(DBMS_RANDOM.value(1,31)) as day_id,trunc(DBMS_RANDOM.value(1,100),2) as sales_value from dual connect by level<=20;select * from salestable order by year_id,month_id,day_id;
--练习:1.按照年月日分组,统计每日的销售额select year_id,month_id,day_id,sum(sales_value) from salestable group by year_id,month_id,day_id order by year_id,month_id,day_id;
--练习:2.统计每年的销售额select year_id,sum(sales_value) from salestable group by year_id order by year_id;
--练习:3.统计每月的销售额select year_id,month_id,sum(sales_value) from salestable group by year_id,month_id order by year_id,month_id;
--练习:4.统计12个月每个月的销售额select month_id,sum(sales_value) from salestable group by month_id order by month_id;
--练习::5.统计总销售额select sum(sales_value) from salestable;
--练习::统计每年,每月,每日的销售额(使用集合)select null year_id,null month_id,day_id null,sum(sales_value) from salestableunionselect year_id,month_id,day_id,sum(sales_value) from salestable group by year_id,month_id,day_idunionselect year_id,month_id,null day_id,sum(sales_value) from salestable group by year_id,month_id unionselect year_id,null month_id,null day_id,sum(sales_value) from salestable group by year_id order by year_id,month_id,day_id; 

--练习:
--1:查询不与ford,allen同部门的员工信息(当null值在集合中时无效,原因是null!=null,null可以等于任何值)
  select * from emp where deptno not in(select deptno from emp where lower(ename) in ('ford','allen')) or is null;
--2:查询10,20各部门的平均工资,人数
  select deptno,avg(sal),count(*) from (select * from emp where deptno in (10,20)) group by deptno order by deptno;
--3:查询每个员工的姓名,职位,工资以及其直系领导的姓名与职位
  select e.ename,e.job,e.sal,f.ename,f.job from emp e,emp f where f.empno = e.mgr;
--4:使用exists查询没有员工的部门
  select * from dept where not exist (select 1 from emp e where e.deptno=d.deptno);
--5:按照员工编号排序,每页4条数据,查询第四页的数据
  select * from (select rownum rn,e.* from (select * from emp order by empno) e) where rn between 13 and 16;
--6:查询每年总销售额,与2017年每月的销售额
  select year_id,null,sum(sales_value) from salestable group by year_id 
  union 
  select null,month_id,sum(sales_value) from salestable where year_id=2017 group by year_id,month_id;
--7:查询三年中每月的销售额排名
  select salestable.*,row_number() over(partition by year_id,month_id order by sum(sales_value)) rn from(
  select year_id,month_id,sum(sales_value) from salestable group by year_id,month_id order by year_id,month_id);

十四、Oracle学习笔记:集合操作相关推荐

  1. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-特征点法和特征提取和匹配实践

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  2. 视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  3. [视觉SLAM十四讲]学习笔记1-刚体运动之旋转矩阵与变换矩阵

    [视觉SLAM十四讲]学习笔记1-刚体运动之旋转矩阵与变换矩阵 1点.向量和坐标系 2 坐标系间的欧式变换 2.1 欧式变换之旋转 2.2 欧式变换之平移 3 变换矩阵与齐次坐标 4 Eigen库的简 ...

  4. 视觉SLAM十四讲学习笔记-第四讲---第五讲学习笔记总结---李群和李代数、相机

    第四讲---第五讲学习笔记如下: 视觉SLAM十四讲学习笔记-第四讲-李群与李代数基础和定义.指数和对数映射_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第四讲-李代数求导与扰动模 ...

  5. 视觉SLAM十四讲学习笔记---前三讲学习笔记总结之SLAM的作用、变换和位姿表示

    经过半年学习SLAM相关知识,对SLAM系统有了一些新的认识,故回看以前的学习记录,做总结和校正. 前三讲学习笔记如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉S ...

  6. 视觉SLAM十四讲学习笔记-第四讲-Sophus实践、相似变换群与李代数

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  7. 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 ​​​​​​​ lin ...

  8. 视觉SLAM十四讲学习笔记-第二讲-初识SLAM

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 "定位"和"建图",可以看成感知的"内外之分". ...

  9. 视觉SLAM十四讲学习笔记-第三讲-旋转矩阵和Eigen库

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  10. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-PnP和实践

      专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记- ...

最新文章

  1. sublime插件开发教程(附源码)
  2. 高等数学上-赵立军-北京大学出版社-题解-练习2.3
  3. 与詹金斯一起连续交付Heroku
  4. javase 的一些基础常用类
  5. python prt_Python中的self
  6. python3.X出现关于模块(i18n)的不能使用的解决方法
  7. iOS底层探索之Runtime(五): 消息转发
  8. 为什么静态方法中不可以直接访问非静态方法?
  9. 【Vue】VSCode搭建Vue项目
  10. 初学者园地之一:保险丝
  11. 树莓派+无人机Tello+计算棒实时飞行检测实现
  12. 「构建企业级推荐系统系列」推荐系统的人工调控
  13. 腾讯企业邮箱登录,邮件撤回怎么用?
  14. 树莓派(USB麦克风和麦克风阵列) 录音和播放
  15. Serverless 架构的 N 种可能,你 Pick 谁?
  16. 推荐几个学习linux的国外著名论坛网站
  17. Java三大特性/四大特性简单理解
  18. 英勇地死去 VS 卑贱地活着
  19. python黄金走势预测_python实时获取和讯网纸黄金价格信息
  20. 实用技巧| 电脑系统提升20%上网速度,记得学会拿去装X哈

热门文章

  1. 程序员要找到自己的兴趣所在
  2. 关于C#编译器错误CS0685(VS2005)
  3. string与wstring转换
  4. 拓端tecdat|R语言ROC曲线评价分类器的好坏
  5. 拓端tecdat|matlab使用Copula仿真优化市场风险
  6. SET-Priority_Queue
  7. python装饰器用法
  8. 卷积神经网络 第一周作业 Convolution+model+-+Application+-+v1
  9. 调用sklearn库--分类学习
  10. caffe测试多张图片--需改代码