分组统计

简介:
分组统计
 作用:主要针对一组数据进行分别的统计,例如,统计各个部门的雇员人数。
 SELECT deptno,count(*) FROM emp GROUP BY deptno ;
统计函数:
 • count():求出记录的总和
 • avg():求出平均值
 • max():求出最大值
 • min():求出最小值
 • sum():求和
SELECT avg(sal) 平均工资 FROM emp ;
SELECT sum(sal) 工资总和 FROM emp ;
SELECT max(sal) 最高工资 FROM emp ;
SELECT min(sal) 最低工资 FROM emp ;
SELECT count(empno) 雇员人数 FROM emp ;
求出每个部门的平均工资:
 SELECT deptno,avg(sal) FROM emp GROUP BY deptno ;
上面已经求出了所有雇员的平均工资,现在要求平均工资按由高到低的顺序进行排序
SELECT deptno,avg(sal) FROM emp GROUP BY deptno ORDER BY avg(sal) desc ;
SELECT deptno,count(empno) FROM emp ;  此语句不能执行,因为分组函数可以单独出现,但是如果要与其他字段同时出现,必须有group by,即:分组函数中要查询更多内容,则只能写group by 。
要求:
 要求查询出平均工资高于2000的部门编号及平均工资。
 SELECT deptno,avg(sal) FROM emp WHERE avg(sal)>2000 GROUP BY deptno ;
  以上代码出错了,提示:ORA-00934: 此处不允许使用分组函数
 如果要对分组进行条件过滤,则只能编写HAVING子句,此子句是写在GROUP BY 语句之中的。以上代码应该按如下编写:
 SELECT deptno,avg(sal) FROM emp GROUP BY deptno HAVING avg(sal)>2000 ;
要求:
 查询出部门内最高工资大于2900的部门
 SELECT deptno,max(sal) FROM emp GROUP BY deptno HAVING max(sal)>2900 ;
要求:
显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列:
SELECT job,SUM(sal) FROM emp WHERE job<>'SALESMAN' GROUP BY job HAVING SUM(sal)>5000 ORDER BY SUM(sal) ;
要求:查询出平均工资最高的部门
 SELECT MAX(AVG(sal)) FROM emp GROUP BY deptno ;
 









本文转自 李兴华 51CTO博客,原文链接:http://blog.51cto.com/lixinghua/91211,如需转载请自行联系原作者
目录
相关文章
|
4月前
leetcode-6133:分组的最大数量
leetcode-6133:分组的最大数量
29 0
|
6天前
使用lamba中stream 进行分组统计
使用lamba中stream 进行分组统计
|
11月前
|
关系型数据库
分组
GROUP BY 语句根据一个或多个列对结果集进行分组。
分组分类的查询与保存
分组分类的查询与保存
128 0
分组分类的查询与保存
|
SQL 数据挖掘 关系型数据库
数据的分组与计算
对数据集进行分组并对各组应用一个函数(无论是聚合还是转换),通常是数据分析工作中的重要环节。在数据集准备好之后,通常就是计算分组统计或生成透视表。pandas 提供了一个灵活高效的 groupby 功能,使我们可以高效地对数据集进行操作。 关系型数据库和 SQL 能够如此流行的原因之一就是其能够方便地对数据进行连接、过滤、转换和聚合。但是,像 SQL 这样的查询语言所能执行的分组运算的种类很有限,而由于 pandas 强大的表达能力,我们可以执行复杂得多的分组运算。
96 0
aggregate | 在R中进行分组统计
aggregate | 在R中进行分组统计
155 0
|
数据挖掘 开发者 索引
分组与聚合|学习笔记
快速学习 分组与聚合
123 0