Oracle数据库(六)—— 分组函数

(一)组函数

avg:平均函数

max:最大值函数

min:最小值函数

sum:求和函数

stddev:标准差函数

count():计数函数

count(expr) 返回expr不为空的记录总数

NVL函数使分组函数无法忽略空值

COUNT(DISTINCT expr)返回expr非空且不重复的记录总数

(二) group by

1、对单个列分组

-- 求出employees表中各部门的平均工资

2、对多个列分组

-- 求出employees表中各部门、各工种的平均工资

  • 在SELECT 列表中所有未包含在组函数中的列都应该包含 在 GROUP BY 子句中
  • 不能在 WHERE 子句中使用组函数
  • 可以在 HAVING 子句中使用组函数

(三)having:过滤分组

使用 HAVING 过滤分组:

  1. 行已经被分组。

  2. 使用了组函数。

  3. 满足HAVING 子句中条件的分组将被显示

SELECT column, group_function

FROM table

[WHERE condition]

[GROUP BY group_by_expression]

[HAVING group_condition]

[ORDER BY column];

-- 求出各部门中平均工资大于6000的部门

(四)嵌套组函数

-- 求出各部门中平均工资的最大值

(五)总结

  1. 使用组函数:avg(),sum(),max(),min(),count()
  2. 在查询中使用 GROUP BY 子句。
  3. 在查询中使用 HAVING 子句。

原文地址:https://www.cnblogs.com/wffrzh/p/9414192.html

时间: 2024-11-08 07:20:02

Oracle数据库(六)—— 分组函数的相关文章

Oracle数据库获取uuid函数

Oracle新建系统表时,要求主键为32位uuid,猜测Oracle肯定会提供相关的函数. 翻阅相关文档,果然发现Oracle提供的函数 sys_guid() 用于获取32位uuid,简单使用为 select sys_guid() from dual; 该函数返回32位的uuid为大写,可以使用 lower(sys_guid()) 转为小写. Oracle数据库获取uuid函数

Oracle - 查询语句 - 分组函数

/* 分组函数 不能再select子句中出现普通的列,除非这个列在group by中给出 所有的空值都会被分为一组 分组过滤 SELECT FROM WHERE GROUPBY HAVING ORDERBY */ --求出每种工作的平均薪资 SELECT JOB,AVG(SAL),MAX(SAL),MIN(SAL) FROM EMP GROUP BY JOB; SELECT MAX(SAL) FROM EMP; SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY D

Oracle数据库常用SQL函数

1.SQL函数的概念: 函数一般是在数据上执行的,它给数据的转换和处理提供了方便.只是将取出的数据进行处理,不会改变数据库中的值.(类似于java中的方法但函数只是将数据库中的数据取出(复制)到函数中进行运算,并不会修改数据库中的数据) 2.Sql函数可以分为组函数和单行函数. –单行函数对单个数值进行操作,并返回一个值–组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的having子句 3.单行函数的分类: 单行函数分为字符函数.数字函数.日期

oracle数据库报表汇总函数grouping

前两天同事问一个oracle使用grouping完成一个统计报表的功能,这个函数帅呆了.开发分组报表直接一个SQL就搞定. grouping(columnA)函数的意思:当前行如果是由rollup汇总产生的,那么columnA这个字段值为1否则为0 元数据: 通过grouping查询后的数据: sql: select decode(grouping(f_line)+grouping(f_workarea),1,'小计',2,'总计',f_workarea) f_workarea, decode(

Python中通过cx_oracle操作ORACLE数据库的封闭函数

哈哈,看来我的SQL自动化发布,马上就全面支持ORACLE,MYSQL,POSTGRESQL,MSSQL啦... http://blog.csdn.net/swiftshow/article/details/7383481 def Oracle_Exec(SqlStr): "Execute oracle command" conn = cx_Oracle.connect(DB_UserName, DB_UserPwd, DB_ConnectStr) cursor = conn.curs

Oracle数据库—— 存储过程与函数的创建

一.涉及内容 1.掌握存储过程与函数的概念. 2.能够熟练创建和调用存储过程与函数. 二.具体操作 1.创建存储过程,根据职工编号删除scott.emp表中的相关记录. (1)以scott 用户连接数据库,然后为system 用户授予delete 权限. 语句: connect scott/tiger; grant delete on emp to system; 截图: (2)以system 用户连接数据库,创建存储过程. 语句: connect system/orcl1234: create

Oracle数据库中的函数

1.随机数函数:DBMS_RANDOM.RANDOM 1 SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL; --产生一个100以内的随机数 2 SELECT TRUNC(100+900*dbms_random.value) FROM dual; --产生一个100-1000之间的随机数 3 SELECT dbms_random.value FROM dual; --产生一个0-1之间的随机数 4 SELECT dbms_random.value

oracle数据库中decode函数的使用

语法 decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 函数含义 IF条件=值1THEN RETURN(返回值1) ELSIF条件=值2THEN RETURN(返回值2) ...... ELSIF条件=值nTHEN RETURN(返回值n) ELSE RETURN(缺省值) ENDIF 注意,后面的缺省值是可以不写的. select lb.contno, decode(cont.conttype, '1', cont.appntno, '2', cont.ins

Oracle数据库SQL语言实战培训教程(全面、详细、案例、精讲)套餐

风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 套餐介绍: 风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 内容: SQL语言基础入门:SQL语言DDL语句和对象管理,表/临时表/索引/约束/视图/同义词/序列/触发器/存储过程/包的创建管理:SQL语言DML语句,SQL语句INSERT/UPDATE/DELETE,PL/SQL创建,事务与锁:SQL语言Select查询语句,SQL查询限制排序,联接查询,SQL子查询:SQL语言

Oracle数据库之安装教程

一.从官网下载oracle数据库或者我的博客 官网地址:Oracle数据库下载地址 博客地址:博客下载地址 二.安装数据库 注意: 10g的数据库只能在xp操作系统中才有效. 建议安装在虚拟机上,这样随便玩都行. xp镜像下载地址:地址 1.运行安装程序Setup.exe,系统将启动Oracle Universal Installer,然后进行先决条件检查.会出现如下图示 2.然后一路next,到最后一步的时候需要配置一下你的登录信息 3. 安装完成后,自动运行配置向导,如下图,等待其完成: 4