oracle主函数聚集函数
1、主函数
(注意:主函数在默认情况是忽略空值计算的,主函数不仅可以对数字类型进行计算,对日期也同样可以进行运算)
min() 计算最小值
max() 计算最大值
avg() 计算平均值
sum() 计算总和
由于这几个函数比较简单,所以在就下图中一并展示
1。主函数对数字进行计算

2、2。count(字段名/*)函数 作用是计算出 该字段有多少条数据, 如果是* 的话 则是计算出数据表中一共有多少条数据
查询出表中 有奖金的雇员有多少人,与雇员姓氏有多少条数据

3、从图中可以看出拿奖金的雇员一共是35位,那么奖金列中一定空值。既然有空值那么在进行运算的时候看它是否会正常运算。从下图中可以看到是可以正常运算的。因为主函数在默认情况是忽略空值的。

4、查询出表中一共有多少条数据,显示出表中一共有多少条数据

5、在进行数据查询的时候,有一些字段值是相同的,比如雇员职位ID。如果只是想查询出有多少个职位,那么可以嵌套使用distinct函数进行去除重复。

6、3。使用主函数对日期进行计算
查询出最早入职的雇员和最晚入职的雇员

7、4。主函数还有另外一种用法,就是分组求聚集的结果,也就是分组查询
在主函数的使用中,如果查询语句中有字段没有进行主函数的运算,则必须把未运算的列放在分组表达式中。如果不把未经过主函数运算的字段放在分组表达式中则会报错。
例如1:想要查询出每个部门的工资总和
select DEPARTMENT_ID,sum(salary) from employees group by DEPARTMENT_ID;

8、例如2:想查询出每个部门的最低工资与最高工资和平均工资

9、例如3。如果查询语句中有多少个字段没有进行主函数运算,则没有进行运算的字段都必须要添加到分组运算表达式中。

10、例如4:另外还有一点需要注意,在分组查询中不能使用别名,必须对原始的字段名进行分组

11、5。having 函数 对分组查询出的结果进行条件限制(经过主函数计算的字段是不能使用where条件进行限制的)
示例1:查询出每个部门工资总和大于10000的部门

12、嵌套使用主函数
示例2:查询出部门平均工资最高的工资是多少
