组函数及分组统计


分组函数


SQL中经常使用的分组函数

    Count(): 计数

    Max():求最大值

    Min():求最小值

    Avg():求平均值

    Sum():求和


-- 统计emp表中的人数
select count(*) from emp; -- 统计获得奖金的人数
select count(comm) from emp;-- 求全部雇员的最低工资
select min(sal) from emp;-- 求全部雇员的最高工资
select max(sal) from emp;-- 求部门编号为20的雇员的平均工资和总工资
select avg(sal),sum(sal) from emp where deptno = 20;

分组统计查询


语法格式

SELECT {DISTINCT}*|查询列1 别名1,查询列2 别名2……

FORM 表名称1 别名1,表名称2 别名2,……

{WHERE 条件表达式}

{GROUP BY 分组条件}

{ORDERBY  排序字段 ASC|DESC,排序字段 ASC|DESC,……}


-- 统计出每一个部门的人数
select deptno,count(empno) from emp group by deptno;-- 求出每一个部门的平均工资
select deptno, avg(sal) from emp group by deptno;

统计每一个部门的最高工资,以及获得最高工资的雇员姓名

假设写成

SELECT ename,max(sal)FROM empGROUP BY deptno

Oracle会提示第 1 行出现错误:

ORA-00979: 不是 GROUP BY 表达式

以上代码在运行过程中出现错误,是由于:

1. 假设程序中使用了分组函数。则在下面两种情况下能够正常查询结果:

      程序中存在了GROUP BY,并指定了分组条件。这样能够将分组条件一起查询出来

      假设不使用GROUP BY,则仅仅能单独地使用分组函数

2.使用分组函数时,查询结果列不能出现分组函数和分组条件之外的字段


综上所述,我们在进行分组统计查询时有遵循这样一条规律:

出如今字段列表中的字段。假设没有出如今组函数中。就必然出如今GROUP BY 语句的后面


-- 统计出每一个部门的最高工资。及最高工资的雇员姓名
select deptno, ename,sal from emp where sal in(select max(sal) from emp group by deptno);


-- 查询出每一个部门的部门名称。及每一个部门的雇员人数
select d.dname, count(e.empno)
from emp e, dept d
where e.deptno = d.deptno
group by d.dname

求出平均工资大于2000的部门编号和平均工资

刚開始学习的人非常easy错误地写成将工资大于2000的条件写在where的后面

SELECT deptno,avg(sal)  FROM emp  WHERE avg(sal)>2000   GROUP BYdeptno<span style="font-family:SimSun;"></span>

系统出现例如以下错误提示:

ORA-00934: 此处不同意使用分组函数


-- 求出平均工资大于2000的部门编号和平均工资
select e.deptno, avg(sal)
from emp e, dept d
where e.deptno = d.deptno
having avg(sal) > 2000
group by e.deptno;


规则:WHERE 仅仅能对单条记录限制(过滤),having是对分组进行过滤

分组函数仅仅能在分组中使用。不能在WHERE语句之中出现。假设要指定分组条件,则仅仅能通过另外一种条件的指令:HAVING

-- 显示非销售人员工作名称以及从事同一工作雇员的月工资总和,而且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资合计升序排列
select e.job, sum(e.sal) sum_sal
from emp e
where e.job <> 'SALESMAN'
group by e.job
having sum(e.sal) > 5000
order by sum_sal;

分组的简单原则:
     仅仅要一列上存在反复内容才有可能考虑到用分组查询

注意:

     分组函数能够嵌套使用,可是在组函数嵌套使用的时候不能再出现分组条件的列名


例:求平均工资最高的部门编号、部门名称、部门平均工资

第一步:

select deptno, avg(sal) from emp group by deptno;


第二步:

select deptno, max(avg(sal)) from emp group by deptno;
ORA-00937: 不是单组分组函数


第三步:去掉查找结果中的deptno列

select max(avg(sal)) from emp group by deptno;



逐步完毕后:

select d.deptno, d.dname, t.avg_salfrom dept d,(select deptno,avg(sal) avg_salfrom empgroup by deptno having avg(sal)=(select max(avg(sal)) from emp group by deptno) ) t
where t.deptno=d.deptno;


 







转载于:https://www.cnblogs.com/yxwkf/p/5278895.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

两张神图介绍python3和 2.x与 3.x 的区别

有感与第一张图, 做了第二张图.转载于:https://www.cnblogs.com/Vito2008/p/5280393.html

Factorial Trailing Zeroes

https://leetcode.com/problems/factorial-trailing-zeroes/ Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in logarithmic time complexity. 解题思路&#xff1a; 再次遇见最讨厌的Math题。 开始的思路&#xff0c;结尾的…

百年难得一见!阿里园区惊现双月争辉奇观!

9月3日晚杭州阿里园区上空突然惊现“双月争辉”奇观&#xff0c;引发路人、员工争相拍照留念狂潮。记者随后深入园区探访&#xff0c;近距离观察“双月奇观”。当晚&#xff0c;热心观众王先生提供线索。王先生路过杭州阿里巴巴园区时&#xff0c;听到有人呼喊&#xff1a;“快…

Spring 事务配置5种方式

Spring配置文件中关于事务配置总是由三个组成部分&#xff0c;分别是DataSource、TransactionManager和代理机制这三部分&#xff0c;无论哪种配置方式&#xff0c;一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化&…

黑客宣称掌握了600多万个Instagram账号的信息

据外媒报道&#xff0c;上周早些时候&#xff0c;歌手兼演员赛琳娜戈麦斯因Instagram账号被盗而发出大量来自前男友贾斯汀比伯的裸照。不过当时很快赛琳娜就拿回了对账号的控制权并删掉了这些裸照。就在大家以为这件事情已经平息的时候&#xff0c;Instagram却被曝光了一个极为…

奇怪吸引子---Aizawa

奇怪吸引子是混沌学的重要组成理论&#xff0c;用于演化过程的终极状态&#xff0c;具有如下特征&#xff1a;终极性、稳定性、吸引性。吸引子是一个数学概念&#xff0c;描写运动的收敛类型。它是指这样的一个集合&#xff0c;当时间趋于无穷大时&#xff0c;在任何一个有界集…

安装SQL2012出现[HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1

本人安装SQL2012出现这个错误&#xff0c;找了三天三夜&#xff0c;终于把问题找出来&#xff0c;共享给有需要的人们&#xff0c;不用重新换系统 错误如下: 1&#xff0c;此问题是系统.net Framework版本冲突&#xff0c;首先下载.net Framework清理工具&#xff08;如:cleanu…

java限制发送短信次数_使用java发送短信验证码码,出现流量限制怎么办?急急急...

注册登录后需要企业认证,直接在某度上找一张清晰有红章的企业营业执照,注意要细心点,要看看有没有水印。我第一次就没注意上传了一张有水印的营业执照&#xff0c;从此这个账号再也没有审核通过了&#xff0c;后面只能换个账号。都是后台人工审核的&#xff0c;比较严格。如果时…

GDKOI2015 Day2

P1 题目描述&#xff1a; 给出一个二分图&#xff0c;选择互不相交的边&#xff0c;使得边覆盖的点权和最大。 solution&#xff1a; 简单DP&#xff0c;用树状数组维护最大值。 时间复杂度&#xff1a;$O(n \log n) $ P2 题目描述&#xff1a; 给出N个或黑或白的元素&#xff…

XMind入门教程

最近在总结一些框架知识的时候&#xff0c;总找不到一款好的软件来画流程图&#xff0c;后来在网上查找这方面的东西&#xff0c;找到了 XMind,发现用来画思维导图还挺好的&#xff0c;看起来思路清晰&#xff0c;美观。那么便将使用的一些经验分享给大家。 1、什么是思维导图&…

java word转图片tiff_不怕复制内容 Word转存TIFF文件这么玩

辛辛苦苦把Word文件敲好&#xff0c;为了不让别人复制走内容&#xff0c;只能看文稿&#xff0c;有些人就选择转存成PDF文件——但是PDF文件依然可以被编辑&#xff0c;还有什么方法能防范呢&#xff1f;其实在Word 2003之前&#xff0c;用户可以通过Microsoft Office Document…

IDC:聚焦6+6,抓住数字化转型商机

今天&#xff0c;IDC中国2015年中国ICT市场趋势论坛巡回系列的第二站在北京举行。论坛的主题为“加速创新实现数字化转型”。 这是最坏的时代&#xff1a;经济增长乏力、实体经济不振、传统行业在被颠覆与重构、IT市场总体增长进入个位数区间、IT第二平台的领导厂商仍在困境中。…

IBM收购以色列应用发现公司EZSource

6月1日晚消息&#xff0c;IBM宣布对以色列公司EZSource进行收购&#xff0c;交易的具体条款没有被披露。 EZSource成立于2003年&#xff0c;以自有视觉面板产品闻名&#xff0c;该公司的产品能够帮助开发人员将重要的大型机应用程序现代化。该公司在以色列、英国、美国、瑞士、…

hadoop之 Hadoop2.2.0中HDFS的高可用性实现原理

在Hadoop2.0.0之前&#xff0c;NameNode(NN)在HDFS集群中存在单点故障&#xff08;single point of failure&#xff09;&#xff0c;每一个集群中存在一个NameNode&#xff0c;如果NN所在的机器出现了故障&#xff0c;那么将导致整个集群无法利用&#xff0c;直到NN重启或者在…

3D坦克大战游戏源码

3D坦克大战游戏源码&#xff0c;该游戏是基于xcode 4.3&#xff0c;ios sdk 5.1开发。在xcode4.3.3上完美无报错。兼容ios4.3-ios6.0 &#xff0c;一款ios平台上难得的3D坦克大战游戏源码&#xff0c;有20张不同的作战地图。通过左下角方向键和重力感应来控制坦克运行&#xff…

java编程基础素数实验报告,JAVA 基础编程练习题1 (输出素数)

JAVA 基础编程练习题1 (输出素数)JAVA 基础编程练习题1 (输出素数)题目&#xff1a;判断 101-200 之间有多少个素数&#xff0c;并输出所有素数。程序分析&#xff1a;判断素数的方法&#xff1a;用一个数分别去除 2 到 sqrt(这个数)&#xff0c;如果能被整除&#xff0c;则表明…

Go语言在扫码支付系统中的成功实践

今天的内容主要分四个方面。第一&#xff0c;金融支付系统的一些特点;第二&#xff0c;我们的扫码支付系统技术选型;第三&#xff0c;系统迭代过程中的架构演进;第四&#xff0c;与Go相关的一些坑。 金融支付系统的一些特点 图 1 首先从业务流程入手&#xff0c;其实非常简单。…

一站式学习Wireshark(七):Statistics统计工具功能详解与应用

Wireshark一个强大的功能在于它的统计工具。使用Wireshark的时候&#xff0c;我们有各种类型的工具可供选择&#xff0c;从简单的如显示终端节点和会话到复杂的如Flow和IO图表。本文将介绍基本网络统计工具。包括&#xff1a;捕捉文件摘要&#xff08;Summary&#xff09;,捕捉…

Odoo (OpenERP/TinyERP)-10.0 (Debian 8)

平台&#xff1a; Ubuntu 类型&#xff1a; 虚拟机镜像 软件包&#xff1a; odoo-10.0commercial erp odoo open source openerp tinyerp服务优惠价: 按服务商许可协议 云服务器费用:查看费用 立即部署产品详情 产品介绍Odoo https://www.odoo.com/ &#xff08;前Op…

iOS开发- 蓝牙后台接收数据(BLE4.0)

最近在做一个蓝牙相关的项目, 需要在应用进入后台, 或者手机属于锁屏状态的情况下, 仍然保持蓝牙连接, 并且能正常接收数据。 本来以后会很麻烦, 但是学习了下..发现就2步而已。简单的不能再简单了。 好了。下面是具体实现办法。 1.在xxx-info.plist文件中, 新建一行 Required…