五、sql基础:group by分组--【Oracle数据库】

五、分组计算函数和group by子句

1.分组计算函数

分组计算函数,相对于单行函数,也可以称之为多行函数,它的输入是多个行构成的一个行集(这个行集可以使一张表的所有行,也可以是按照某个维度进行分组后的某一组行),而输出都是一个值。


2.分组计算函数(常用)

求和 sum
求平均值 avg
计数 count
求最大值 max
求最小值 min


3.分组计算函数实战

计算job_id中包含‘REP’的人的薪水的总和、平均值、数量、最大值、最小值
这里写图片描述


4.计数函数:count

count(*) 返回满足选择条件的所有行数,包括值为空的行和重复的行
count(列名) 返回那一列中不为空的行数
count(distinct 列名) 返回那一列中不为空、不重复的行数
count(*)和count(1)的结果是一样的


5.group by 分组
5.1根据一个字段进行分组

实战:按照 部门department_id 分组,计算平均薪水:
这里写图片描述

5.2根据多个字段进行分组

实战:按照 部门department_id 、job_id分组,计算平均薪水:
这里写图片描述


6.Having

当我已经按照5.1的方式查出部门的平均薪资,我想继续查平均薪资大于5000的部门,此时如果把avg(salary)>5000写在where子句中是不对的,应该把where换成having
这里写图片描述


7.分组函数嵌套使用

按照5.1查出部门平均薪资,查看平均薪资的最大值
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_29668759/article/details/79965505