当前位置:  数据库>oracle

Oracle 分组函数用法示例详解

    来源: 互联网  发布时间:2017-05-17

    本文导语: 聚合函数、多行函数、分组函数都是一类函数GROUP BY 和 HAVING group 函数:AVGSUMMINMAXCOUNTSTDDEVVARIANCEDISTINCT 与 group 函数结合使用NULL 值在 group函数当中的处理 嵌套 group 函数 group 函数的语法:SELECT GROUP_FUNCTION(COLUMN),...FROM TABLE[WHERE COND...

聚合函数、多行函数、分组函数都是一类函数
GROUP BY 和 HAVING


group 函数:AVGSUMMINMAXCOUNTSTDDEVVARIANCE
DISTINCT 与 group 函数结合使用
NULL 值在 group函数当中的处理


嵌套 group 函数


group 函数的语法:
SELECT GROUP_FUNCTION(COLUMN),...
FROM TABLE
[WHERE CONDITION]
[ORDER BY COLUMN];


---示例1:AVGMAXMINSUM针对NUMBER类型数据


SELECT AVG(SALARY), MAX(SALARY), MIN(SALARY), SUM(SALARY)
FROM EMPLOYEES
WHERE JOB_ID LIKE '%REP%';


AVG(SALARY) MAX(SALARY) MIN(SALARY) SUM(SALARY)
----------- ----------- ----------- -----------
 8272.72727      11500        6000      273000
 
---示例2:MIN和MAX可以针对number外还可以针对date类型数据
hr@PROD> SELECT MIN(HIRE_DATE), MAX(HIRE_DATE) FROM EMPLOYEES;


MIN(HIRE_ MAX(HIRE_
--------- ---------
17-JUN-87 21-APR-00


----示例3:COUNT(*) 和 COUNT(1),COUNT(1)的速度比COUNT(*)快
hr@PROD> SELECT COUNT(*) FROM EMPLOYEES;


  COUNT(*)
----------
      107
-----COUNT(*)返回某个表中的行数
hr@PROD> SELECT COUNT(1) FROM EMPLOYEES;


  COUNT(1)
----------
      107
 
---COUNT(EXPR)符合expr 的所有非空值行的行数,请看下例:
hr@PROD> SELECT COUNT(COMMISSION_PCT) FROM EMPLOYEES;


COUNT(COMMISSION_PCT)
---------------------
                  35

 


hr@PROD> SELECT COUNT(DEPARTMENT_ID) FROM EMPLOYEES;


COUNT(DEPARTMENT_ID)
--------------------
                106


hr@PROD> SELECT COUNT(EMPLOYEE_ID) FROM EMPLOYEES;


COUNT(EMPLOYEE_ID)
------------------
              107
 
------------DISTINCT 和 group 函数的配合使用
示例:
hr@PROD> SELECT COUNT(DISTINCT DEPARTMENT_ID) FROM EMPLOYEES;


COUNT(DISTINCTDEPARTMENT_ID)
----------------------------
                          11
 


--------------------------------
-----------group  函数对 Null 值的处理
----group 函数忽略列中的 null 值


hr@PROD> SELECT COUNT(COMMISSION_PCT) FROM EMPLOYEES;


COUNT(COMMISSION_PCT)
---------------------
                  35

 


hr@PROD> SELECT COUNT(NVL(COMMISSION_PCT,0)) FROM EMPLOYEES;


COUNT(NVL(COMMISSION_PCT,0))
----------------------------
                        107 
 
-----35 人参与计算 
hr@PROD> SELECT AVG(COMMISSION_PCT) FROM EMPLOYEES;


AVG(COMMISSION_PCT)
-------------------
        .222857143


------107 人参与计算 
hr@PROD> SELECT AVG(NVL(COMMISSION_PCT,0)) FROM EMPLOYEES;


AVG(NVL(COMMISSION_PCT,0))
--------------------------
                .072897196


-------创建分组数据----
GROUP BY 子句


计算每个部门中的平均薪水
SELECT COLUMN ,GROUP_FUNCTION(COLUMN)
FROM TABLE
[WHERE CONDITION]
[GROUP BY GROUP_BY_EXPRESSION]
[ORDER BY COLUMN];


注意:SELECT 子句中的 COLUMN 必须包含在 GROUP BY 子句中
列出的单行必须包含在 group by 子句中
执行顺序,先计算 WHERE,后计算group by,再查询结果,最后执行 order by
order by 中可以使用别名,where 和 group by 中不允许使用别名


    
 
 

您可能感兴趣的文章:

  • oracle while的用法示例分享
  • Oracle 使用Java Source 简单示例
  • ORACLE 毫秒与日期的相互转换示例
  • java使用jdbc链接Oracle示例类分享
  • Oracle数据库安装配置示例
  • java操作oracle数据库示例
  • Oracle数据库安装配置流程示例详细解析
  • oracle表空间中空表统计方法示例介绍
  • oracle创建删除用户示例分享(oracle删除用户命令及授权)
  • 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
  • Oracle层次查询和with函数的使用示例
  • php连接oracle数据库的示例代码
  • ORACLE实现字段自增示例说明
  • SqlServer实现类似Oracle的before触发器示例
  • oracle截取字符(substr)检索字符位置(instr)示例介绍
  • Oracle外键不加索引引起死锁示例
  • Oracle定义DES加密解密及MD5加密函数示例
  • Oracle数据库密码重置、导入导出库命令示例应用
  • 随机获取oracle数据库中的任意一行数据(rownum)示例介绍
  • oracle comment命令用法示例分享
  • Oracle中用GROUPING SETS分组自定义汇总
  • MySQL与Oracle中分组、聚合函数的区别
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle中lpad函数的用法详解
  • Oracle中decode函数的用法
  • Oracle 系统变量函数用法指南
  • c#中oracle to_date函数用法举例
  • oracle 下WITH CHECK OPTION用法
  • Oracle 函数用法之decode
  • Oracle sequence序列的用法
  • [Oracle] 常用工具集之SQL*Loader的用法
  • oracle case when 语句的用法详解
  • Oracle行级锁的特殊用法简析
  • Oracle merge into用法及例子
  • Oracle to_date()函数的用法介绍
  • oracle正则表达式regexp_like的用法详解
  • Oracle to_date() 用法细节
  • 深入探讨:oracle中row_number() over()分析函数用法
  • Oracle中start with...connect by prior子句用法
  • Oracle回滚段的概念,用法和规划及问题的解决
  • Oracle MERGE INTO的用法示例介绍
  • oracle 安装与SQLPLUS简单用法
  • oracle while的用法示例分享 iis7站长之家
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,