【一】、Oracle常用的统计函数
Avg(x):求一组行中列x值的平均值
count(x):求一组行中列x值的非空行数
count(*):求一组行的总行数
max(x):求一组行中列x值的最大值
min(x):求一组行中列x值的最小值
stddev(x):求一组行中列x值的标准差
sum(x):求一组行中列x值的总和
variance(x):求一组行中列x值的方差
【二】、group by与统计函数
使用上面介绍的函数时可以使用也可以不使用group by
,但在使用group by时,未在group by部分用到的列在select
部分出现时必须使用统计函数,如按角色统计平均年龄
Select user_name,avg(age) from users
Group by role_id; ×
Select count(user_name),avg(age) from users
Group by role_id√
【三】、用having字句规定统计条件
having 子句的作用类似于where子句,只不过where
子句针对单个行,而having子句针对的是统计结果,一般和统计的函数搭配使用。Having子句后必须为前面select后面的子部分,或是group
by 后面的字段
select count(uer_name),avg(age) from users group by role_id having
role_id>20; ×
select count(uer_name),avg(age) from users group by role_id having
avg(age)>20; √
【四】其他oracle常用函数
Decode(column1,value1,output1,value2,output2,…..)
如果column1 有一个值为value1那么将会用output1
来代替当前值,如果column1 的值为value2 那么就用OUTPUT2
来代替当前值,如果column1 中哪两个值都不是,那么就会用OUTPUT3
来代替当前值
Select decode(age,10,7,9,6,3),user_name from users;