返回顶部
首页 > 资讯 > 数据库 >oracle分组函数
  • 830
分享到

oracle分组函数

2024-04-02 19:04:59 830人浏览 八月长安
摘要

分组函数:作用于一组值,并对一组数据返回一个值;分组函数的使用:常用的分组函数:Avg(求平均值),sum(求总和),min(求最小值),max(求最大值),count(求总个数),wm_conca

分组函数:作用于一组值,并对一组数据返回一个值;

分组函数的使用:

常用的分组函数:

Avg(求平均值),sum(求总和),min(求最小值),max(求最大值),count(求总个数),wm_concat(行转列)

例:select count( distinct deptno) from emp ;

行转列: select deptno 部门号,wm_concat(ename) 部门中员工的名字  from emp group by deptno;

----------------------------------------------------

分组函数与空值:(分组函数会自动忽略空值)

1.      统计员工的平均工资

Select sum(sal)/count(*) 一,sum(sal)/count(sal) 二,avg(sal) 三 from emp;

 

2.      统计员工的平均奖金

Select sum(comm)/count(*)一,  sum(comm)/count(comm) 二,avg(comm) 三from emp;

 

注意:nvl函数使分组函数无法忽略空值

Selectsum(comm)/count(*)一,   sum(comm)/count(nvl(comm,0)) 二from emp;

Comm为空时,nvl函数返回0,0不为null,所以count不会忽略

------------------------------------------------------

Group by子句的使用

1.求部门号和部门的平均工资

Selectdeptno,avg(sal) from emp

Group bydeptno;

 抽象:

Selecta,b,c,avg(x) from table

Group bya,b,c;

规定:select列表中所有未包含在组函数中的列都应该包含在group by 子句中;

相反的,在group by 中的列,不必包含在组函数中

 

多个列的分组:(分组逻辑:先按照group by 后面第一个列分组,如果第一个列相同,再按照第二个列分组,如果所有的列都相同,那么这就是同一组中的数据)

按照部门,不同的职位,统计员工工资的总额

Select deptno,job ,sum(sal) from emp

Group by deptno,job;



-------------------------------------------------------

Having子句的使用:(过滤分组后的数据)

平均工资大于2000的部门

Select deptno,avg(sal)

From emp

Having  avg(sql)>2000;

 

Wherehaving的区别:

where子句后面不能使用分组函数

 

Wherehaving可以通用的情况(没有分组函数的情况下可以通用,但是从

Sql优化的角度上考虑,尽量使用where)

查询10号部门的平均工资

1.      Where

Select deptno,avg(sal) from emp wheredeptno=10 group by deptno

 

2.      Having

Select deptno,avg(sal) from empgroup by deptno having deptno=10

-----------------------------------------------------------------------------

在分组函数中使用orderby 排序(默认是asc升序)

1.Select deptno ,avg(sal)

From emp

Group by deptno

Order by avg(sal)

2.

Select deptno ,avg(sal)

From emp

Group by deptno

Order by 2—这里的2代表select语句后面的第二列,这里即avg(sal)

----------------------------------------------------------------------------

分组函数的嵌套

Select  max(avg(sal))

From emp

Group by deptno;

-----------------------------------------------------------------------

Group by 语句的增强:

(1)Selext deptno,job,sum(sal)

From emp

Group by deptno,job

 

(2)Select deptno,sum(sal)

From emp

Having deptno

 

(3)Select sum(sal) from emp

 等价于(1)+(2)+(3)

Select deptno,job,sum(sal) from emp group byrollup(deptno,job);

语法:

Group by rollup(a,b)

等价于:groupby a,b+group by  a+group by null

 

Break on deptno skip 2;--相同的部门号只显示一次,不同的部门号之间

跳过两行

--详细的可以看看sql-plus的报表功能

您可能感兴趣的文档:

--结束END--

本文标题: oracle分组函数

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

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

猜你喜欢
  • oracle分组函数
    分组函数:作用于一组值,并对一组数据返回一个值;分组函数的使用:常用的分组函数:Avg(求平均值),sum(求总和),min(求最小值),max(求最大值),count(求总个数),wm_conca ...
    99+
    2024-04-02
  • Oracle专题6之Oracle的分组函数与数组分组
    在关系数据库中,使用数据分组可以取得表数据的汇总信息。数据分组是通过分组函数、Group by以及having等子句共同实现的。 1、分组函数 SQL函数包含单行函数和多行函数。分组函数属于多行...
    99+
    2024-04-02
  • Oracle增强型分组函数
    ROLLUP()函数是对于GROUP BY 分组统计的功能扩展,可以实现分组统计求和的效果。下面我们开始准备我们的试验的环境--创建新表employee_salary,存储数据来自用户hr.employee...
    99+
    2024-04-02
  • Oracle函数-组函数
    函数的分类单行函数:一个input对应一个output,input和output存在一一对应的关系 如lower组函数:多个input,但是只对应一个output。如 sum()--------------...
    99+
    2024-04-02
  • Oracle数据库中有哪些分组函数
    这篇文章给大家介绍Oracle数据库中有哪些分组函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、group by的使用--根据DEPTNO和JOB进行分组。求相同DEPTNO,相...
    99+
    2024-04-02
  • mysql 分组函数
    #分组函数:用作统计使用,可嵌套使用 USE myemployees; #sum 求和 SELECT SUM(salary) FROM employees; #avg 求平均 SELECT ...
    99+
    2024-04-02
  • oracle 函数之分析函数
    1.分析函数有4个 over row_number dense_rank rank 四个 不能单独使用2.select empno, sal ,deptno,sum(sal) over(o...
    99+
    2024-04-02
  • 如何在Oracle中使用ROLLUP分组函数
    这期内容当中小编将会给大家带来有关如何在Oracle中使用ROLLUP分组函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。环境准备create table&n...
    99+
    2024-04-02
  • Oracle分析函数
        聚合函数可以在分析模式或非分析模式下来进行运算。非分析模式下的聚合函数将结果集削减为较少的数据行。然而,在分析模式下,聚合函数并不减少输出结果行数。并且,聚合函数能够在...
    99+
    2024-04-02
  • Oracle分析函数Over()
    Over()分析函数   说明:聚合函数(如sum()、max()等)可以计算基于组的某种聚合值,但是聚合函数对于某个组只能返回一行记录。若想对于某组返回多行记录,则需要使用分析函数。 rank()/dense_rank over...
    99+
    2015-01-23
    Oracle分析函数Over()
  • python中分组函数groupby和分组运算函数agg的使用
    目录groupby:agg:今天来介绍pandas中一个很有用的函数groupby,其实和hive中的groupby的效果是一样的,区别在于两种语言的写法问题。groupby在Pyt...
    99+
    2024-04-02
  • 怎么使用python中分组函数groupby和分组运算函数agg
    这篇文章主要介绍“怎么使用python中分组函数groupby和分组运算函数agg”,在日常操作中,相信很多人在怎么使用python中分组函数groupby和分组运算函数agg问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-06-25
  • PHP数组函数总结分享
    PHP数组函数总结分享,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。这几天在网上看了很多有关PHP数组函数的相关知识,觉得孔老夫子的“温故而知新”果然不假,这里...
    99+
    2023-06-17
  • MySQL必备基础之分组函数 聚合函数 分组查询详解
    目录一、简单使用二、搭配DISTINCT去重三、COUNT()详细介绍四、分组查询一、简单使用 SUM:求和(一般用于处理数值型) AVG:平均(一般用于处理数值型) MAX:最大(...
    99+
    2024-04-02
  • Oracle分析函数入门
    Oracle分析函数入门...
    99+
    2020-12-22
    Oracle分析函数入门
  • PHP 数组分组函数在金融分析中的应用
    php 数组分组函数在金融分析中应用广泛,允许根据特定规则将数组元素分组:持股分组:根据股票代码分组持股,计算每种股票的总数量。交易分组:根据日期分组交易,汇总每日期的交易金额。这些函数...
    99+
    2024-05-01
    php 金融分析
  • PHP 数组分组函数在统计分析中的应用
    使用 php 的 array_group_by() 函数可以对数组中的数据进行分组,从而方便进行统计分析,包括:分组后,可以通过 array_map() 函数计算每个组中的元素数量。还可...
    99+
    2024-05-02
    php 数组分组
  • php分割数组用什么函数
    php分割数组用“array_chunk()”函数。array_chunk()函数可以把一个数组分割成多个子数组,语法“array_chunk($array,$size,是否保留键名)”;每个子数组的元素个数由不可省参数“$size”决定。...
    99+
    2022-06-14
    php数组 php
  • Oracle分析函数之开窗函数over()详解
    分析函数是什么? 分析函数是Oracle专门用于 解决复杂报表统计需求 的功能强大的函数, 它可以在数据中进行分组然后计算基于组的某种统计值 ,并且每一组的每一行都可以返回一个统计值。 ...
    99+
    2024-04-02
  • mysql中分组函数怎么用
    mysql中常见的分组函数有sum()求和函数、avg()求平均值函数、max()求最大值函数、min()求最小值函数、和count()计算个数函数几种,使用方法如下:sum() 求和select sum(salary) from...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作