oracle 分组查询详解

Oracle学习总结7--null、聚合函数、分组查询 null、聚合函数、分组查询null聚合函数分组查询havinghaving和where的区别 null --关于null的处理 ,null是一个字段没有被赋值时的状态 --注意:任何数据与null进行运算结果一定为null,如果要避免这个问题,可以在运算时给null设置默认值 -- nvl(字段,默认值):如果字段内容不为null则返回当前值,如果为null则用默认值代替 --查询 员工的姓名,工资,奖金 , 月收入(工资+奖金) select ename,sal,comm,sal+ nvl(co 阅读详情
 

一,什么是分组函数

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

二,分组函数类型

Avg ,count,max,min,stddev(标准方差),sum。

函数名称

函数描述

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子句。不管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;

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;

DIY压电陶瓷传感器信号放大:从拆解到JFET电路实战(附示波器实测数据) 本文详细介绍了如何利用废旧设备拆解的压电陶瓷片,结合JFET(结型场效应管)高输入阻抗特性,DIY搭建高灵敏度振动传感器放大电路。从元件拆解、参数实测到JFET共源极放大器实战搭建与调试,提供了完整的步骤、示波器实测数据及优化方案,帮助电子爱好者实现低功耗振动检测应用。 阅读详情

相关推荐

SAP S4HANA F-02报错:更正统一日记账分类账的定制设置

消息号 FINS_ACDOC_CUST201 使用FINS_CUST_CONS_CHK_P去检查公司代码和分类账的设置 提示:过账期间变式为空(分类账 E1/公司代码 7500) 检查了表FINSC_LD_CMP 显示有分类账未分配过账期间变式 解决:后台配置定义分类账和货币类型的设置把过账变式维护下 路径:财务会计→财务会计全局设置→分类账→分类账→定义分类账和货币类型的设置 选中需要维护的分类账双击左侧的“分类账的公司代码设置”,找到对应的公司代码维护上即可。

qq_45068743的博客 6447

Oracle分组函数

1.分组函数: 多行函数\聚合函数:就是对一组中的数据进行处理获取一个结果2. max min sum avg count 自动忽略null值 select count(comm) from emp; 43.注意: sum() avg() 只能对数值操作 max() min() 只对 日期和数值操作 count()  可以对任何类型 可以在组函数中 使用 distinct关键字去除重复的数据 s...

KCJT博客 2872

动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码

动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码1.Win10系统配置OpenPose1.7.0的Python API 本人最近在研究基于骨架的动作识别方法,有幸看到端到端的ST-GCN算法,于是决定自己复现一下。(具体原理这里不介绍,大家自行查阅,比如Openpose是个啥?ST-GCN又是个啥?) 1.Win10系统配置OpenPose1.7.0的Python API 安装步骤: (1) ...

QIANFANGshiwo的博客 3035

oracle mysql 中以每10个步长作为一个分组

#每天一点点,记录工作中实操作可行# #oracle中以每10个步长作为一个分组# 当分组范围较大,有固定范围值时,可以用这个方法进行分组 当sum_rooms<30 时,归类为30以下; 当 sum_rooms >=200时,归类为200以上; 当sum_rooms在30到200之间时,将这些数据每10个作为一个分组 select Z2.ID,Z1.name ,case when...

YmeBtc的博客 1368

架构——异地多活成熟的架构模式

摘要: 本文系统介绍了三种异地多活架构模式:业务定制型、业务通用型和存储通用型。业务定制型针对核心业务定制化设计,复杂度低但扩展性差;业务通用型通过统一配套服务(流量调度、配置中心等)实现多业务兼容,适合业务量大但一致性要求不高的场景;存储通用型依托分布式一致性数据库(如OceanBase、TiDB)天然支持强一致性,适合金融等高要求场景,但对部署距离和成本有较高限制。文章对比了各模式的优缺点及适用场景,为不同业务需求下的架构选型提供了实践指导。

小志的博客 7083

linux应用程序段错误调试

一、堆、栈 在分析段错误之前,先了解一下什么是堆?什么是栈? 堆:一般由开发者分配释放,如果没有释放,程序结束时,在有的OS中可能会被自动释放,分配方式类似于链表。堆的操作方式为,队列优先,先进先出的原则。 栈:由操作系统自动分配,存放函数的参数值,局部变量。栈的操作方式为,先进后出的原则。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。  PUSH:操作在堆栈的顶部加入一个元素...

农村种地人 1110

oracle 按每分钟分组,oracle按每个10分钟进行分组展示数据

例如有这么一张表 XATXDAY_FLIGHT(航班飞航表),有这么一个字段 STD_LOCAL(起飞时间),要求:统计一天24小时之内每隔10分钟,这10分钟之内有几架飞机起飞。比如:XATXDAY_FLIGHT 表STD_LOCAL . . .(其他字段省略)12:0012:0512:1012:2012:25...(其他时间省略)也就是说,结果应该是这样的:表示12:00~12:10这个时间段...

weixin_28766993的博客 2416

西门子S7-200 SMART PLC高速计数器与增量式编码器实战配置指南

在工业自动化控制系统中,传感器是将物理量转换为电信号的关键组件,其中编码器作为核心的位置与速度检测元件,其工作原理基于光电或磁电效应,将机械位移转换为脉冲序列。增量式编码器通过输出相位差90度的A/B两相脉冲,不仅能实现精确的位移测量,还能通过相位关系自动判别运动方向,并通过倍频技术提升分辨率。其技术价值在于为PLC等控制器提供了实时、高精度的位置反馈,是实现闭环控制、提升系统精度与可靠性的基础。在包装机械、物料输送、绕线设备等应用场景中,编码器与PLC高速计数器的协同工作是实现精确定位、定长切割与速度控制

weixin_29178069的博客 392

oracle中分段查询,Oracle分段查询

网上查看分段查询的例子,用的最多的是LAG和LEAD统计函数,Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。例如:create table TEST(GRADE NUMBER not null,STUID VARCHAR2(4));insert into test (GRADE, STUID...

weixin_36401794的博客 1331

Python爬虫-爬取汽车之家各品牌周销量榜数据,进行数据分析

本文是该专栏的第57篇,后面会持续分享python爬虫干货知识。本文中,笔者已经整理20篇汽车平台相关的爬虫项目案例。对此感兴趣的同学,可以直接翻阅查看。同样,笔者在本文中将继续以汽车之家平台为例子。基于Python爬虫,实现批量爬取“各品牌周销量榜单”的数据。废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 365

【软件定义汽车】-【架构篇】-全面讲解整车电子电气架构演进

前言: 前段时间,陆陆续续写了一些电子电气架构相关的文章。这里打算再写最后一篇作为收尾,为整个系列画上句号,把坑填上,这个话题就算过去了。后续一段时间,尽量把之前文章中挖的“坑”填一下。行文逻辑将借鉴5W2H进行。 另外,本文作为一篇整合性的文章,为保证逻辑的完整性,主要是将大量过去自己文章中的内容进行梳理整合,也存在很多行业内专家的公开文章的内容,请见谅。 WHAT1:什么是汽车电子电气架构? 电子电气架构:EEA,Electrical/Electronic Architecture.

零点壹客的博客 1万+

05、Oracle使用分组函数汇总数据

Oracle使用分组函数汇总数据

教Linux的李老师 5970

【Claude】媒体文件处理错误:PDF 与 Image 过大的检测与预处理方法 bug报错已解决

图片压缩是必须的:原始图片的 base64 会占用大量 TokenPDF 提取文本优于传图片:文本版 PDF 比扫描版更省 Token分块处理大文件:不要一次性处理整个大文件控制分辨率:800x800 通常足够 Claude 分析。

博客 6359

Oracle 分组查询详解

一,什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值 二,分组函数类型 Avg ,count,max,min,stddev(标准方差),sum。 函数名称 函数描述 Count 返回找到的记录数 Min 返回一个数字列或计算列的最小值 Max 返回一个数字

小猪的代码窝 638

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

详解GROUP BY分组查询在Mysql与Oracle中的区别与使用

文章目录一、什么是GROUP BY分组查询二、GROUP BY为什么要结合聚合函数三、GROUP BY在Mysql和Oracle中的区别 一、什么是GROUP BY分组查询 在菜鸟教程中,其对GROUP BY的定义为:“GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。” 由此我们可以知道,GROUP BY就是把表中的数据查询出来,然后进行分组。在菜鸟教程对其的定义中,我们可以看到:“用于结合聚合函数”使用,那么为什么要结合聚合函数使用呢?在Mysql和Oracle中对GROUP B

JF的博客 4291

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

oracle2个字段分组,Oracle中分组查询group by用法规则详解

Oracle中group by用法在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息。使用having子句 限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。在带有group by ...

weixin_35529833的博客 6026

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

oracle增删改成,条件查询,联合查询,分组查询,内外连接,排序等sql实例详解

Oracle 中默认的表 scott 用户默认表介绍 2.雇员表 1.插入 insert 语句 给指定列插入数据:insert into dept(deptno,dname) values(50,'xx'); 插入全部列数据:insert into dept(deptno,dname,loc) values(60,'xx','lll');...

qq_40135955的博客 323

oracle 分组 连接查询_Oracle数据库中SQL细节、多表查询、分组查询、分页操作详解-Oracle...

前言在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了…印象中就只有基本的SQL语句和相关一些概念….写下本博文的原因就是记载着Oracle一些以前没注意到的知识点…以后或许会有用…实例与数据库概念Oracle数据库服务器由两部分组成:实例:理解为对象,看不见的 数据库:理解为类,看得见的我们在安装Oracle的时候,已经填写过自己数据库的...

weixin_39610366的博客 180

Oracle 多表连接查询(内连接、左/右外连接、全连接)以及分组查询的运用详解

多表查询的连接 连接分为两种:内连接与外连接 文章目录多表查询的连接1.内连接1.1等值连接1.2自身关联2.外连接2.1连接语法2.1.1JOIN...ON() 子句2.1.2JOIN...USING() 子句2.1.3自然连接2.2左外连接2.3右外连接2.4全外连接2.5外连接Demo3.分组统计查询3.1聚合函数(分组函数)3.2分组查询3.2.1Demo3.2.2分组函数嵌套3.2....

WzXxZw_Bolgs 3452

oracle分组查询&分组筛选学习&增删改&数据备份

分组查询&筛选学习: --关键字:group by 分组字段名,分组字段名.... --注意1:使用了分组后,在select语句中只允许出现分组字段和多行函数。 --注意2:如果是多字段分组,则先按照第一字段分组,然后每个小组继续按照第二个字段继续分组,以此类推。 --注意3:在where子句中不允许出现多行函数。 ...

weixin_44771312的博客 377

oracle 分组 最新,Oracle分组查询

Oracle分组查询分组查询主要涉及到两个子句,分别是:group by和having。group by1、取得每个工作岗位的工资合计,要求显示岗位名称和工资合计select job, sum(sal) from emp group by job;采用group by,非聚合函数使用的字段必须参与分组。如果使用了order by,order by必须放到group by后面。2、按照工作岗位和部门...

weixin_39927288的博客 750

Oracle基础-分组查询 备份

如果执行了where子句,而没有指定group by 子句,那么having 子句应用于where子句的输出,并且整个输出被看作一个组,如果select 语句中既没有指定where,也没有指定group by ,那么having子句将应用于from 子句的输出,并且将其看作一个组。当直接使用group by子句进行多列分组时,只能生成简单的数据统计结果。2、select子句中的列必须是进行分组的列,除此之外添加其他的列名都是错误的,但是group by子句后面的列名可以不出现在select子句中。

geminigoth的博客 1615

Oracle之分组查询

分组查询 分组,将 事物 按某方面 相同性质 进行归类。即在同组事物中,某方面性质是一致的;不同组之间,在指定性质上是不同的。按某指定性质分组后,一个包含有任意个对象的组会以该特性作为标识,整体作为一条记录呈现。 Oracle中,分组方式有两种。一种是Group by 方式;另一种是Having 方式。 Group by         进行分组统计,使用聚合函数,可以统计组内某些

脚步不停,信念不息! 715

oracle groyp by 顺序,Oracle分组查询group by的用法及讲解

group by是sql中比较强大的功能,是在对数据分组统计时必不可少的用法。但是,对于很多经验不足的同学,经常会写错。今天我们就以Oracle为例,来讲解下分组查询group by的用法。一,group by 语法规范首先我们准备一张Student表CREATE TABLE STUDENT( SNO VARCHAR2(10) not null,SNAME VARCHAR2(20),SAGE...

weixin_34357232的博客 920
上一篇: oracle多表查询详解
下一篇: oracle子查询详解
日依
博客等级 码龄15年 165粉丝 165原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值