上章:Oracle入门(十三B)之高级查询(上)

四、常见组函数

SUM、AVG、COUNT、MIN、MAX
分组函数忽略null 值。
不能在WHERE 子句中使用组函数。
MIN 和MAX 可用于任何数据类型;
SUM、AVG只能用于数字数据类型

五、子查询

子 查 询 是 一 个 SELECT语句,它嵌入到另一个SELECT 语句的子句中。子查询在主查询之前执行一次。主查询(也称外部查询)使用子查询的结果。

有两种类型的子查询

  • 单行子查询,该查询使用单行运算符(>、=、>=、<、<>、<=)并仅从内部查询返回一行
  • 多行子查询,该查询使用多行运算符(IN、ANY、ALL)并从内部查询返回多行

(1)单行的子查询

A.想查找最迟入职的员工信息

Select *
From employees
Where hire_date = (select max(hire_date)from employees); 

B.想查找有多少位员工在多伦多工作?

子查询:

select count(*)
from employees
where department_id =
(
select department_id
from departments D,locations L
where D.location_id = L.location_id
and L.city = 'Toronto'
) 

连接:

select count(*)
from employees E, departments
D,locations L
where E.department_id = D.department_id
and D.location_id = L.location_id
and L.city = 'Toronto' 

(2)多行的子查询

查找所有的程序员和会计的基本信息

select *
from employees
where job_id in(select job_idfrom jobswhere job_title='Programmer'or job_title='Accountant'); 

六、Top-N-Analysis

Top-N-Analysis 是一种SQL 运算,用于对结果进行排序。如果您希望从查询返回的结果集中检索前n 个记录,Top-N-Analysis 会很有用。

语法:

select 列名1...列名n
from (select 列名1...列名n
from 表名
order by 列名1 ... 列名n )
where rownum <= n ( 抽 出 记 录 数 )
order by rownum asc

查找出雇员表里面前三条记录

select *
from ( select *
from employees
order by last_name)
Where rownum <=3
Order by rownum asc

七、集合查询

有时候,您希望将多个表合并到一个输出结果中。如果对表进行联接,则只会获得返回的匹配行,但如果不希望联接这些表,或因联接将导致错误结果而不能进行联接时,应如何处理

(1)并集

(2)并集 重复

(3)交集

(4)差集

使用集合运算符时的规则

  • 列的个数及列的数据类型在查询使用的所有SELECT 语句中必须相同。
  • 可以用null和常量来填充缺失的列
  • 列名不必相同。
  • 输出中的列名取自第一个SELECT 语句中的列名。因此,若要在最终报表中显示某个列别名,应在第一个语句中输入该列别名。

Oracle入门(十三C)之高级查询(下)相关推荐

  1. oracle 窗口函数查询条件,62.Oracle数据库SQL开发之 高级查询——使用分析函数之窗口函数...

    62.Oracle数据库SQL开发之 高级查询--使用分析函数之窗口函数 窗口函数可以计算一定的记录范围内.一定值域内.或者一段时间内的累积和以及移动平均值.查询返回一组记录,称为结果集.窗口这个术语 ...

  2. 线性回归中oracle性质,66.Oracle数据库SQL开发之 高级查询——使用线性回归函数...

    66.Oracle数据库SQL开发之 高级查询--使用线性回归函数 线性回归函数可以用普通最小平方回归曲线拟合一组数值对.线性回归函数可用于聚合.串口或报表函数. 如下图1: 例如: store@PD ...

  3. oracle报表查询sql,63.Oracle数据库SQL开发之 高级查询——使用报表函数

    63.Oracle数据库SQL开发之 高级查询--使用报表函数 报表函数可用于执行跨越分组和组内分区的计算. 报表计算:SUM,AVG,MAX,MIN,COUNT,VARIANCE,STDDEV.可以 ...

  4. Oracle数据系列(四)、高级查询2

    第四章.Oracle高级查询2 学习目标 4.1.模糊查询LIKE 查询时,字段内容并不一定与查询内容完全匹配,只要字段含有这些内容就行. #查询以李姓开头的员工信息 select * from em ...

  5. 【企查查】高级查询下突破导出5000条/10次限制思路tips,完整全量导出

    [企查查.天眼查.企业信息,企业目录] 高级查询界面 限制条件 突破思路 结果展示 高级查询界面 限制条件 即使VIP,对单个筛选条件下的查询数据也只能有前5000条.并且有导出次数限制 突破思路 1 ...

  6. 数据库 day60,61 Oracle入门,单行函数,多表查询,子查询,事物处理,约束,rownum分页,视图,序列,索引

    1.    oracle介绍 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的 ...

  7. Oracle入门--水表项目(单表查询,链接查询,左右外连接,子查询,分页查询)(3)

    水表项目建表 1.1.1 分析 1.1.2 SQL实现 表结构 -- <自来水公司收费系统> -- 1 业主类型表 create table t_ownertype(id number p ...

  8. Oracle入门(四)之查询基本信息

    一.查询基本信息 (1) 查询实例服务 SQL> show parameter instance name (2)查询数据库名字 SQL> show parameter db_name; ...

  9. mysql查询显示技巧_MYSQL SQL高级查询技巧

    1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...

  10. java高级查询_SQL高级查询(转载)

    transact---sql高级查询(下) 5:使用having关键字来筛选结果 6:使用compute和compute by子句 7:使用嵌套查询 8:分布式查询 E:使用having关键字来筛选结 ...

最新文章

  1. python 笔记 之 sqlalchemy操作数据库-创建表
  2. python输出特别的矩阵
  3. 2011年9月 成都 腾讯笔试 面试过程(亲身体验,仅供参考娱乐)(一)
  4. 复习(三)—— 进程管理详解
  5. [USACO1.1]坏掉的项链Broken Necklace
  6. kali 安装volatility_虚拟机安装|给你双倍快乐
  7. Linux的chmod与chgrp
  8. Java高级应用开发之Servlet
  9. 设计模式笔记一:工厂模式
  10. malloc/free与new/delete的使用要点
  11. 关于es6中新增的一些方法----数组篇
  12. Facebook提出Pica模型,为Quest 2带来实时逼真虚拟化身渲染
  13. fscapture下载收费吗?_听歌要收费,下载又要付费?国内的音乐app还想干什么?...
  14. Appcan性能低?速度慢?UI难看?与apicloud用数据说话
  15. 高数18讲_1000题错题总结_第一讲
  16. 网络安全问题及防护措施有哪些
  17. SSH中 三大框架的各自的作用及好处
  18. 统计学 常用的数据分析方法大总结,推荐收藏
  19. Dos窗口文字背景颜色设置
  20. 《所谓情商高就是会说话》

热门文章

  1. 值得关注的HTML基础
  2. Equations HDU - 1496(哈希或三层for循环)求满足公式有多少种情况
  3. python练习题:列表排序
  4. 地址转换算法 C++实现
  5. Codeforces Round #715 (Div. 2) D. Binary Literature 构造
  6. Educational Codeforces Round 94 (Rated for Div. 2) D(思维)
  7. P4396 [AHOI2013]作业
  8. Sightseeing Cows POJ - 3621
  9. [luogu 4292][bzoj 1758][WC2010] 重建计划(点分治 + dp + 单调队列优化 + 启发式合并)
  10. P5021-赛道修建【平衡树,贪心,二分答案】