五、分组计算函数和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查出部门平均薪资,查看平均薪资的最大值