分组统计

简介:
分组统计
 作用:主要针对一组数据进行分别的统计,例如,统计各个部门的雇员人数。
 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,如需转载请自行联系原作者
目录
相关文章
|
9月前
使用lamba中stream 进行分组统计
使用lamba中stream 进行分组统计
|
5月前
如何优雅地对数据进行分组?
如何优雅地对数据进行分组?
67 0
|
Python
将列表按照指定的规则排序并添加平均值
将列表按照指定的规则排序并添加平均值
83 1
|
关系型数据库
分组
GROUP BY 语句根据一个或多个列对结果集进行分组。
分组分类的查询与保存
分组分类的查询与保存
170 0
分组分类的查询与保存
7-19 树种统计 (10 分)
7-19 树种统计 (10 分)
127 0
aggregate | 在R中进行分组统计
aggregate | 在R中进行分组统计
207 0
|
数据挖掘 开发者 索引
分组与聚合|学习笔记
快速学习 分组与聚合
167 0
|
数据库 Python
统计各个分类和标签下的文章数
在我们的博客侧边栏有分类列表和标签列表,显示博客已有的全部文章分类。现在想在分类名和标签名后显示该分类或者标签下有多少篇文章,该怎么做呢?最优雅的方式就是使用 django 的 annotate 方法。 Model 回顾 回顾一下我们的 model 代码,django 博客有一个 Post 和 Category 模型,分别表示文章和分类: blog/models.py class Post(models.Model): title = models.CharField('标题', max_length=70) body = models.TextField('正文')
167 0

热门文章

最新文章