分组函数

分组函数是oracle中作用于一组数据,返回一个值。

分组函数有:AVG,COUNT,MAX,MIN,STDDEV,SUM等。

分组函数语法如下:

SELECT  [column,] group_function(column), ...
FROM  table
[WHERE  condition]
[GROUP BY  column]
[ORDER BY  column];


AVG(平均值)、SUM (合计)函数、MIN(最小值) 、 MAX(最大值)函数。其中AVG和SUM只能对数值型数据进行操作,MIN和MAX函数可以对任意数据类型的数据进行操作。

eg: select AVG(salary),max(salary),min(salary),sum(salary)

from emp

where job_id = 'IT';

select count(*) from emp;-------返回emp的记录总数。

select count(column) from emp;----返回column不为空的记录总数。

select count(distinct column) from emp;---返回column非空且不重复的记录总数。

select AVG(column) from emp;-----返回column所有非空列的平均值。

select AVG(NVL(column,0)) from emp;---这样就无法忽略空值,返回的就是column所有列的平均值。

PS:SELECT列表中所有未包含在组函数中的列都应该包含在GROUP BY子句中,但是group by子句中的列不需要包含在select列表中。

eg:SELECT   department_id, AVG(salary)
FROM     employees
GROUP BY department_id ;


SELECT   AVG(salary)
FROM     employees
GROUP BY department_id ;


PS:where子句中不能使用分组函数,但是可以再having子句中使用分组函数。

eg:SELECT   department_id, MAX(salary)
FROM     employees
GROUP BY department_id
HAVING   MAX(salary)>10000 ; 但是将having中的条件放在where子句中则会报错。

分组函数可以嵌套:

eg:SELECT   MAX(AVG(salary))
FROM     employees
GROUP BY department_id;-----显示department_id中平均工资最大的department_id。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值