Oracle入门(十三C)之高级查询(下)

上章: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 语句中的列名。因此,若要在最终报表中显示某个列别名,应在第一个语句中输入该列别名。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软将降低Visual Studio对操作系统的影响

在过去几年中&#xff0c;为了将Visual Studio变成Windows上的第一开发工具&#xff0c;而不管用户的目标平台是什么&#xff0c;微软作出了重大努力。最近收购Xamarin及通过大力支持开源工具来支持非Windows设备&#xff0c;极大地增加了它对于各类开发人员的用处。这一做法的…

代码设置margintop_关于元素设置margin-top能够改变body位置的原因及解决(子元素设置margin-top改变父元素定位)...

关于元素设置margin-top能够改变body位置的原因及解决(子元素设置margin-top改变父元素定位)起因&#xff1a;在进行bootstrap的.navbar-brand内文字设置垂直居中时采用line-height高度&#xff0c;无法居中&#xff0c;发现源码.navbar-brand 设置了 padding: 15px 15px;(默认…

Oracle入门(九A)之用户的权限或角色

转载自 查看Oracle用户的权限或角色 前几天被问到一些关于权限和角色的问题&#xff0c;今天抽时间总结一下如何查看Oracle用户的权限或角色&#xff0c;在之前的博文中&#xff0c;写过 SYS,SYSTEM,DBA,SYSDBA,SYSOPER的区别与联系 以及 Oracle中定义者权限和调用者权限案例分…

25.从生磁盘到文件

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 2.文件&#xff1a;煮熟的磁盘&#xff0c;或熟磁盘&#xff1b; 本节的主要内容是讨论 如何从文件得到盘块号&#xff1b; 3.磁盘操作抽象&#xf…

Storm 1.0.1发布 .NET 适配也已到来

Apache Storm 1.0.0刚发布不久&#xff0c;1.0.1版本也在几天前到来&#xff1b;该版本主要是完成一些BUG修复和小的改进&#xff0c;通过一段时间新版本的使用&#xff0c;特将个人感受和一些遇到的问题归纳如下&#xff1b;另外 .NET 版本的 Storm 适配器也已经发布&#xff…

布隆过滤器速度_详解布隆过滤器的原理、使用场景和注意事项

今天碰到个业务&#xff0c;他的 Redis 集群有个大 Value 用途是作为布隆过滤器&#xff0c;但沟通的时候被小怼了一下&#xff0c;意思大概是 “布隆过滤器原理都不懂&#xff0c;还要我优化&#xff1f;”。技术菜被人怼认了、怪不得别人&#xff0c;自己之前确实只是听说过这…

Oracle入门(十四)之PL/SQL

一、PL/SQL 基本语法 PL/SQL语言是模块式的过程化SQL,是oracle公司对SQL的扩展。 &#xff08;1&#xff09;&#xff08;2&#xff09;&#xff08;3&#xff09;&#xff08;5&#xff09;&#xff08;6&#xff09;&#xff08;7&#xff09;数据类型Number 数字型Varchar2 …

26.文件使用磁盘的代码实现

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 2.文件内容复习&#xff1a; 1&#xff09;如何从生磁盘抽象为文件&#xff1f; 核心是从字符流位置算出盘块号&#xff1b;2&#xff09;如何算出盘…

.NET Core全新的配置管理[共9篇]

提到“配置”二字&#xff0c;我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影&#xff0c;那就是我们再熟悉不过的app.config和web.config&#xff0c;多年以来我们已经习惯了将结构化的配置信息定义在这两个文件之中。到了.NET Core的时候&#xff0c;很多我们…

redis存opc_KEPServerEX6完整免费版

KEPServerEX6完整免费版是一款先进的连接平台&#xff0c;主要用于为您的应用程序提供单一来源的工业自动化数据&#xff0c;通过连接、管理、监视和控制不通的自动化设备和应用程序来实现工业数据。具有严谨的技术特征&#xff0c;支持多达250种以上的通讯协定&#xff0c;可连…

Oracle入门(十四B)之PL/SQL异常处理

定义&#xff1a;程序执行过程的警告或错误成为例外(Exception) 一、常见预定义错误 二、非预定义错误及用户定义错误 &#xff08;1&#xff09;非预定义oracle错误其他标准的oracle错误,可以自定义异常名&#xff0c;将其与指定oracle错误关联&#xff0c;由系统触发。 例子…

C#读书雷达 | TW洞见

大家都知道&#xff0c;ThoughtWorks的技术雷达每年都会发布两到三次&#xff0c;它不但是业界技术趋势的标杆&#xff0c;更提供了一种卓有成效的方法论&#xff0c;即打造自己的技术雷达。在这种思想的驱动下&#xff0c;我们诞生了自己的读书雷达。但这份雷达略显high level…

27.目录与文件系统

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 2.第4层抽象&#xff1a;抽象整个磁盘到文件系统 【1】文件系统&#xff0c;抽象整个磁盘&#xff08;第4层抽象&#xff09; 【图解】整个磁盘抽象1…

dd命令打包多个文件_linux的tar命令详情;linux多个文件压缩打包到一个压缩文件...

tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。Linux打包命令_tartar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。常用格式&#xff1a;单个文件压缩打包 tar czvf my.tar.gz file1多个文件压缩打包 tar czvf my.tar.gz file1 file2,...(file…

28.文件目录解析代码实现

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 背景&#xff1a; 磁盘格式化后&#xff0c;其组成部分包括引导块&#xff0c;超级块&#xff0c;inode使用位图&#xff0c;盘块使用位图&#xff0…

Oracle入门(十四A)之PL/SQL 基本结构

一、条件控制语句 &#xff08;1&#xff09;条件语句Iif…then…end if形式1:if <布尔表达式> then…(pl/sql和sql)…end if;&#xff08;2&#xff09;条件语句II if…then…else … end if 形式2&#xff1a;if <布尔表达式> then…(pl/sql和sql)else…end if;…

利用记事本创建一个ASP.NET Core RC2 MVC应用

步骤一、安装最新的.NET Core SDK 我们可以根据自身的操作系统环境从https://github.com/dotnet/cli上下载.NET Core最新的SDK&#xff0c;这个SDK包含.NET Core Runtime和一些有用工具&#xff08;比如命令行&#xff09;。如果你已经安装了老旧的版本&#xff0c;我个人建议你…

datatable中某一列最小值_获取DataTable 某一列所有值

//获取某一列值string orderids (from d in dt.AsEnumerable() select d.Field("OrderID")).ToList().ListToString();/// /// 判断字符串是否在某字符串数组当中/// /// /// /// public static bool In(this string value, params string[] items){return items.An…

29.操作系统对磁盘的4层抽象小结

【README】 本文总结了操作系统 对磁盘的4层抽象&#xff0c;并给出了详细介绍的post 链接&#xff1b; 【1】对磁盘的4层抽象 【1.1】对磁盘的第1层抽象 通过盘块号读写磁盘&#xff08;读写多个扇区&#xff09;&#xff1b; 因为磁盘底层操作的单位是扇区&#xff08;51…

Oracle入门(十四C)之转换函数

一、数据转换类型 为数据库创建表时&#xff0c;SQL 程序员必须定义在表的各个字段中存储何种数据。在 SQL 中&#xff0c;有几种不同的数据类型。这些数据类型用于定义每个列中可以包含的值的范围。 &#xff08;1&#xff09;在本文中将使用以下数据类型VARCHAR2 CHAR NUMBER…