oracle中的多行函数
组函数是处理多行返回一行,组函数不能计算空值
1、组函数
①:avg
②:count
③:max
④:min
⑤:stddev(求标准差)
⑥:sum
注意:
count(*)=count(1)=count(2), ()里面的值只要不是null,都是可以算一行的
max和min可以适用于任何数据类型(number,varchar2,date),
avg和sum只能用于number类型
例:select count(distict last_name) from employees;
返回last_name不相同的个数
2、分组数据
例:select deparment_id,job_id,avg(salary) from employees
from employees
group by department_id,job_id;
总结:分组数据中,select的字段只要不是组函数的,则必须出现在
group by中,否则会出错的。。。select 有的 group by 一定
要有,group by 有的select 不一定有。。。
3、使用组函数注意:
①:不能在where 子句中使用组函数
②:可以在 having 子句中使用组函数
当使用组函数作为条件的时候,只需要将where换成having即可
注意:having即可放在from后面,也可放到group by 的后面
例:select deparment_id,avg(salary)
from employees
having avg(salary) >6000
group by department_id
order by department_id asc;
③:组函数可以相互嵌套
例:select max(avg(salary))
from employees
group by department_id;