`

oracle复习(三)

阅读更多
分组函数的介绍
分组函数作用于一组数据,并对一组数据返回一个值.
常见的分组函数有:
函数名称 函数描述
Count 返回找到的记录数
Min 返回一个数字列或计算列的最小值
Max 返回一个数字列或计算列的最大值
Sum 返回一个数字列或计算列总和
avg 返回一个数字列或计算列的平均值
分组函数的语法:
SELECT [column,] group_function(column), ...
FROM table
[WHERE condition]
[GROUP BY column]
[ORDER BY column];
//返回总记录数   //* 代表的是:一条记录
SQL> select count(*) from emp;
//返回comm不为空的总记录数
SQL> select count(comm) from emp;
//COUNT(DISTINCT expr) 返回 expr非空且不重复的记录总数
SQL> select count(distinct(sal)) from emp;
注意:组函数忽略空值。
//返回所有员工的平均工资  
SQL> select avg(nvl(sal,0)) from emp;
注意:NVL函数使分组函数无法忽略空值
//返回员工编号最小值  
SQL> select min(empno) from emp;
//返回员工工资最大值
SQL> select max(sal) from emp;
//求该月本公司发出的工资总额
SQL> select sum(comm)+sum(sal) from emp;
SQL> select sum(nvl(sal,0)+nvl(comm,0)) from emp;

Group by子句
Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 如果在查询的过程中需要按某一列的值进行分组,以统计该组内数据的信息时,就要使用group by子句。不管select是否使用了where子句都可以使用group by子句。

注意:group by子句一定要与分组函数结合使用,否则没有意义。
//求出每个部门的员工人数
SQL> select deptno,count(*) as "人数" from emp group by deptno;
//求出每个部门的员工的平均工资
SQL> select deptno,avg(nvl(sal,0)) from emp group by deptno;
//注意:group by 子句中的列不必包含在SELECT 列表中
SQL> select avg(nvl(sal,0)) from emp group by deptno;

//求出某个部门中相同职位的员工人数   group by 后可以跟多个分组的字段
SQL> select deptno,job,count(*) from emp group by deptno,job order by deptno;

非法使用组函数
1、 所用包含于SELECT 列表中,而未包含于组函数中的列都必须包含于 GROUP BY 子句中。
举例:
SQL> select empno,count(job) from emp;
正确写法如下:
SQL> select empno,count(job) from emp group by empno;
2、 不能在 WHERE 子句中使用组函数(注意)。
SQL> select deptno from emp where count(job)>0 group by deptno;
备注:ORA-00934: 此处不允许使用分组函数


Having 子句
    HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。
备注:having子句通常与group by子句结合使用

语法:
SELECT column, group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];
//查询部门的员工人数大于五部门编号
SQL> select deptno,count(*) from emp group by deptno having count(*)>5;

备注:分组函数可以嵌套

总结:整个查询语句的语法格式如下:
SELECT column, group_function(column)
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];

分享到:
评论

相关推荐

    Oracle复习考试题

    以下是从“Oracle复习考试题”中提炼出的关键知识点,旨在帮助考生全面复习,确保对Oracle核心概念和技术有深入的理解。 ### 一、Oracle基础知识 1. **Oracle数据库概述**:理解Oracle数据库系统的架构,包括实例...

    oracle复习笔记03

    根据提供的文件信息,我们可以梳理出一系列关于Oracle数据库的重要知识点,主要涵盖了数据类型、PL/SQL控制结构、游标以及过程等内容。以下是对这些知识点的详细解释: ### 数据类型 1. **VARCHAR2** - `VARCHAR2...

    oracle复习资料详解,ppt格式

    **Oracle复习资料详解** Oracle是全球最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。本复习资料以PPT格式详细介绍了Oracle数据库的关键概念和技术,旨在帮助学习者全面掌握Oracle的相关知识。 ...

    oracle复习

    标题“Oracle复习”提示我们,这里将探讨Oracle数据库的相关知识,这是一款广泛应用于企业级的数据库管理系统。Oracle数据库以其高效、稳定和强大的功能在IT行业中占有一席之地。描述中的“博文链接”提供了进一步...

    Oracle复习总结

    在复习Oracle时,我们需要深入理解其核心概念和技术,包括表连接方式、执行计划的查看、优化器策略、SQL监控与调整、索引的运用以及排序内存管理等。 1. **表连接方式**:Oracle支持多种连接方式,如哈希连接(Hash...

    《ORACLE数据库》复习汇总

    《ORACLE数据库》复习汇总是一份综合性的学习资料,涵盖了ORACLE数据库的关键概念和技术。这份复习汇总主要基于教材,旨在帮助学生系统性地理解和掌握ORACLE数据库的核心内容。 首先,Oracle版本及其发展史展示了...

    ORACLE复习纲要 杭电

    Oracle复习纲要主要涵盖了Oracle数据库的基础概念、管理、编程以及安全性等方面的知识。以下是对这些知识点的详细说明: 1. **Oracle实例和数据库结构**: - Oracle实例是运行在操作系统上的一组进程和内存结构,...

    oracle复习资料

    这篇复习资料主要涉及Oracle数据库中的模式对象管理,这对于学习数据库管理和准备数据库三级考试非常有帮助。模式对象是数据库中的一种抽象概念,主要包括表、视图、索引、约束、序列和同义词等。 首先,我们来看看...

    Oracle期末复习资料

    以下是对Oracle期末复习资料中涉及的关键知识点的详细解释: 1. **Oracle支持的类型**:Oracle支持多种类型的数据库,包括事务处理型(适合高并发读写操作)和数据仓库型(优化查询性能,用于数据分析)。通用类型...

    Oracle面试复习(一)

    这篇“Oracle面试复习(一)”的博文可能涵盖了Oracle数据库的基础知识,以及如何在面试中有效地展示这些技能。以下是一些可能涉及的关键知识点: 1. **Oracle数据库简介**:Oracle是全球领先的数据库管理系统之一...

    Oracle面试复习(二)

    这篇复习资料主要聚焦于Oracle面试中常见的问题,旨在帮助你更好地准备和理解Oracle的核心概念、功能以及最佳实践。以下是一些可能在面试中出现的关键知识点: 1. **SQL语言基础**: - SQL是Structured Query ...

    ORACLE复习资料

    本复习资料主要涵盖了Oracle中的数据操作语言(DML)和过程化SQL(PL/SQL)的相关实例,这对于理解和掌握Oracle数据库的操作至关重要。 1. 数据操作语言(DML): DML是Oracle中用于插入、更新、删除和查询数据的...

    Oracle复习资料

    ### Oracle复习资料知识点详解 #### 一、Oracle数据库系统的物理存储结构 - **数据文件**:数据文件是Oracle数据库中最基本的存储单元之一,用于存储实际的数据和元数据信息。一个表空间通常由一个或多个数据文件...

    Oracle 复习用脚本

    ### Oracle复习知识点详解 #### 一、创建与管理数据库对象 **1. 创建表空间** 在Oracle中,数据存储在表空间中。表空间由一个或多个数据文件组成,是逻辑存储单元。例如: ```sql createtime EXAM_DATAFILE 'C:\...

    2011年Oracle复习资料

    2011年的Oracle复习资料主要涵盖数据库管理、SQL语法、表空间管理、序列、后台进程、SQL语句缓存、文件操作、变量管理和约束等方面的知识点。 1. 数据文件是Oracle数据库存储数据的基本单元。描述正确的是C,一个表...

    Oracle考试复习资料试题

    Oracle数据库是全球广泛使用的数据库管理系统,对于准备...以上是Oracle考试复习的关键知识点,熟练掌握这些内容将有助于在考试中取得好成绩。在实际应用中,还需要结合实际场景灵活运用,以解决各种数据库管理问题。

    复习oracle

    ### Oracle复习知识点详解 #### CASE WHEN 语句的使用 CASE WHEN 语句在SQL中提供了类似编程语言中if-then-else的逻辑处理能力,允许在查询中根据不同的条件返回不同的结果,无需跳转至复杂的PL/SQL环境。CASE语句...

    04-Oracle复习.mmap

    04-Oracle复习.mmap

Global site tag (gtag.js) - Google Analytics