广告
返回顶部
首页 > 资讯 > 数据库 >Oracle专题6之Oracle的分组函数与数组分组
  • 869
分享到

Oracle专题6之Oracle的分组函数与数组分组

2024-04-02 19:04:59 869人浏览 薄情痞子
摘要

在关系数据库中,使用数据分组可以取得表数据的汇总信息。数据分组是通过分组函数、Group by以及having等子句共同实现的。 1、分组函数 sql函数包含单行函数和多行函数。分组函数属于多行

  • 在关系数据库中,使用数据分组可以取得表数据的汇总信息。数据分组是通过分组函数、Group by以及having等子句共同实现的。

    1、分组函数

  • sql函数包含单行函数和多行函数。分组函数属于多行函数。作用于一组数据,并对一组数据返回一个值。
  • 分组函数:SELECT [column,] group function(column) ... FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column];。
  • 常用的分组函数:AVG、SUM、MIN、MAX、COUNT、WM_CONCAT.。

    a、AVG()

  • 求平均值。举例:SELECT avg(sal) FROM emp;
    SQL> SELECT avg(sal) FROM emp;
        AVG(SAL)
                2135

    b、SUM()

  • 求和。举例:SELECT SUM(sal) FROM emp;
    SQL> SELECT MIN(sal) FROM emp;
        MIN(SAL)
                 800

    c、MIN

  • 求最小值。举例:SELECT MIN(sal) FROM emp;
    SQL> SELECT MIN(sal) FROM emp;
    MIN(SAL)
       800

d、COUNT()

  • 计数(统计)。举例:求员工的总人数,SELECT COUNT(*) FROM emp;
    SQL> SELECT COUNT(*) FROM emp;
    COUNT(*)-
        15
  • 在使用分组时可以使用DISTINCT关键字来去重。
    SQL> select count(distinct deptno) from emp;
    COUNT(DISTINCTDEPTNO)
                    3

    e、WM_CONCAT行转列(让查询结果行转列)

  • 该函数可以把列值以‘,’号分隔起来,并显示成一行。
    SQL> select wm_concat(ename) from emp;
    WM_CONCAT(ENAME)
    EASON,G_EASON,ALLEN,WARD,JONES,MARTIN,BLAKE,CLARK,SCOTT,KING,TURNER,ADAMS,JAMES,
    FORD,MILLER

    2、Group by子句

  • 作用:可以将表中的数据分成若干组。
  • Group by子句的语法:SELECT [column,] group function(column), ... FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column];
  • 例如:求出每个部分的平均工资,要求显示:部门号,部分的平均工资。
  • SELECT deptno, avg(sal) from emp group by deptno;
    SQL> SELECT deptno, avg(sal) from emp group by deptno;
    DEPTNO   AVG(SAL)
        30 1566.66667
        20     2312.5
        10 2916.66667
  • 在SELECT列表中所有未包含在组函数中的列都应包含在GROUP BY子句中。如按照部门和职位进行分组:
    SQL> SELECT deptno, job, avg(sal) from emp group by deptno, job;
            DEPTNO JOB         AVG(SAL)
                    20 CLERK            950
                    30 SALESMAN        1400
                    20 MANAGER         2975
                    30 CLERK            950
                    10 PRESIDENT       5000
                    30 MANAGER         2850
                    10 CLERK           1300
                    20 ANALYST         3000
                    10 MANAGER         2450
    已选择9行。
  • 包含在group by 子句中的列不必包含在SELECT列表当中:
    SQL> select avg(sal) from emp group by deptno;
        AVG(SAL)
    1566.66667
            2312.5
    2916.66667
  • 再如示例:求出每个部分的员工姓名,要求显示:部分标号、员工姓名。
    SQL> select deptno, WM_concat(ename) from emp group by deptno;
    DEPTNO      WM_CONCAT(ENAME)
        10            CLARK,MILLER,KING
        20            EASON,FORD,ADAMS,SCOTT,JONES,G_EASON
        30            ALLEN,JAMES,TURNER,BLAKE,MARTIN,WARD

    3、Having子句

  • 作用:用于对分组后的结果进行过滤。
  • 例子:请平均工资大于2500的部分,要求显示:部门号,平均工资]
  • 不能再WHERE子句中使用组函数,可以在having子句中使用组函数。
    SQL> select deptno,avg(sal) from emp group by deptno having avg(sal) >2500;
    DEPTNO   AVG(SAL)
        10 2916.66667
  • having子句和group by子句通常一起使用。

  • 如果条件中没有组函数,正常使用where语句就可以。比如说:select deptno, avg(sal) from emp where deptno=10 group by deptno;
    SQL> select deptno, avg(sal) from emp where deptno=10 group by deptno;
    DEPTNO   AVG(SAL)
        10 2916.66667
  • where使得分组记录数大大降低,从而提高效率。从SQL优化角度来看,尽量使用where子句。先过滤然后分组。

  • 分组函数的嵌套:求部分平均工资的最大值。
  • select max(avg(sal)) from emp group by deptno;
    SQL> select max(avg(sal)) from emp group by deptno;
    MAX(AVG(SAL))
         2916.66667
您可能感兴趣的文档:

--结束END--

本文标题: Oracle专题6之Oracle的分组函数与数组分组

本文链接: https://www.lsjlt.com/news/42800.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle专题6之Oracle的分组函数与数组分组
    在关系数据库中,使用数据分组可以取得表数据的汇总信息。数据分组是通过分组函数、Group by以及having等子句共同实现的。 1、分组函数 SQL函数包含单行函数和多行函数。分组函数属于多行...
    99+
    2022-10-18
  • oracle分组函数
    分组函数:作用于一组值,并对一组数据返回一个值;分组函数的使用:常用的分组函数:Avg(求平均值),sum(求总和),min(求最小值),max(求最大值),count(求总个数),wm_conca ...
    99+
    2022-10-18
  • Oracle增强型分组函数
    ROLLUP()函数是对于GROUP BY 分组统计的功能扩展,可以实现分组统计求和的效果。下面我们开始准备我们的试验的环境--创建新表employee_salary,存储数据来自用户hr.employee...
    99+
    2022-10-18
  • Oracle专题5之Oracle的单行函数
    SQL函数是什么?SQL函数是Oracle数据库的内置函数,并且可用于各种SQL语句。SQL函数包含单行函数和多行函数。 1、字符函数 字符函数的输入为字符类型,其返回值是字符类型或者是数字类型。 字符函...
    99+
    2022-10-18
  • Oracle数据库中有哪些分组函数
    这篇文章给大家介绍Oracle数据库中有哪些分组函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、group by的使用--根据DEPTNO和JOB进行分组。求相同DEPTNO,相...
    99+
    2022-10-18
  • Oracle专题14之存储过程与函数
    1、存储过程与函数的概述 存储过程和存储函数:是存储在数据库中的被命名的PLSQL块,供所有用户程序调用,完成特定功能的子程序。 a、存储过程和存储函数的区别 是否使用return返回值。(即存储过程不返...
    99+
    2022-10-18
  • 如何在Oracle中使用ROLLUP分组函数
    这期内容当中小编将会给大家带来有关如何在Oracle中使用ROLLUP分组函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。环境准备create table&n...
    99+
    2022-10-18
  • MySQL必备基础之分组函数 聚合函数 分组查询详解
    目录一、简单使用二、搭配DISTINCT去重三、COUNT()详细介绍四、分组查询一、简单使用 SUM:求和(一般用于处理数值型) AVG:平均(一般用于处理数值型) MAX:最大(...
    99+
    2022-11-12
  • Vue函数式组件专篇深入分析
    函数式组件的实现相对容易。一个函数式组件本质上就是一个普通函数,该函数的返回值是虚拟DOM。 在用户接口层面,一个函数式组件就是一个返回虚拟DOM的函数,如下面的代码所示: func...
    99+
    2023-01-05
    Vue函数式组件样式 Vue函数式组件 Vue函数式组件使用场景
  • python中分组函数groupby和分组运算函数agg的使用
    目录groupby:agg:今天来介绍pandas中一个很有用的函数groupby,其实和hive中的groupby的效果是一样的,区别在于两种语言的写法问题。groupby在Pyt...
    99+
    2022-11-12
  • Vue高级组件之函数式组件的使用场景与源码分析
    目录介绍使用场景源码分析总结介绍 Vue提供了一种可以让组件变为无状态、无实例的函数化组件。从原理上说,一般子组件都会经过实例化的过程,而单纯的函数组件并没有这个过程,它可以简单理...
    99+
    2022-11-12
  • Oracle数据库脱敏-在中国南方ORACLE用户组2018.06数据库技术专题研讨会上的分享
    2018年6月30日,参加了由中国南方ORACLE用户组(CN'SOUG)组织的数据库技术专题沙龙,并做了Oracle数据库脱敏的专题分享。 分享包括: 1、当前数据安全的严峻形势 2、数据安全技术的简要概...
    99+
    2022-10-18
  • MySQL数据库学习之分组函数详解
    目录1.分组函数极值求和平均值列数和2.分组查询3.小练习4.大BOSS1.分组函数 极值 示例表内容见此篇文章 找出最高工资: mysql> select max(sal) from emp; +---...
    99+
    2022-07-24
    MySQL数据库分组函数 MySQL分组函数
  • GO中 分组声明与array, slice, map函数
    目录iota 枚举Go 程序设计的一些规则数组切片mapmake、new 操作前言: 在 Go 语言中,同时声明多个常量、变量,或者导入多个包时,可采用分组的方式进行声明。 例如下面...
    99+
    2022-11-13
  • ASP 函数与 numy:大数据分析的最佳组合?
    ASP 函数与 NumPy:大数据分析的最佳组合? 在当今数字化时代,数据的重要性不言而喻。因此,越来越多的企业和组织开始关注大数据分析。大数据分析是指对大量数据进行收集、处理、分析和解释的过程,以便从中获得有价值的信息和洞察。在这个过程中...
    99+
    2023-07-25
    函数 大数据 numy
  • Numpy数组的组合与分割实现的方法
    目录数组的组合1.水平组合2.垂直组合3.行组合和列组合4.深度组合数组的分割1.水平分割1.1hsplit函数1.2split函数2.垂直分割3.深度分割在介绍数组的组合和分割前,...
    99+
    2022-11-12
  • Python数据分析之堆叠数组函数示例总结
    目录numpy 堆叠数组ravel() 函数stack() 函数vstack()函数hstack()函数concatenate() 函数numpy 堆叠数组 在做图像和 nlp 的...
    99+
    2023-02-23
    Python堆叠数组函数 Python 数据分析
  • Python数据分析之堆叠数组函数怎么使用
    今天小编给大家分享一下Python数据分析之堆叠数组函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。numpy 堆...
    99+
    2023-07-05
  • MySQL与Oracle差异比较之函数的示例分析
    这篇文章将为大家详细讲解有关MySQL与Oracle差异比较之函数的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。函数编号类别ORACLEMYSQL注释1数字函数...
    99+
    2022-10-18
  • php分割数组用的函数是哪个
    这篇文章主要讲解了“php分割数组用的函数是哪个”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php分割数组用的函数是哪个”吧!php分割数组用“array_chunk()”函数。array...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作