oracle10g函数大全

发布 2022-06-29 07:44:28 阅读 9842

oracle 10g函数大全--分析函数

oracle分析函数--sql*plus环境。

一、总体介绍。

12.1 分析函数如何工作。

语法 function_name(《参数》,…over ( 1. 值域窗(range window)

range n preceding 仅对数值或日期类型有效,选定窗为排序后当前行之前,某列(即排序列)值大于/小于(当前行该列值 –/n)的所有行,因此与order by子句有关系。

2. 行窗(row window)

rows n preceding 选定窗为当前行及之前n行。

还可以加上between and 形式,例如range between m preceding and n following

函数 **g( expr)

一组或选定窗中表达式的平均值 corr(expr, expr) 即covar_pop(exp1,exp2) /stddev_pop(expr1) *stddev_pop(expr2)),两个表达式的互相关,-1(反相关) ~1(正相关),0表示不相关

count( <计数

covar_pop(expr, expr) 总体协方差

covar_samp(expr, expr) 样本协方差

cume_dist 累积分布,即行在组中的相对位置,返回0 ~ 1

dense_rank 行的相对排序(与order by搭配),相同的值具有一样的序数(null计为相同),并不留空序数

first_value 一个组的第一个值

lag(expr, ,访问之前的行,offset是缺省为1 的正数,表示相对行数,default是当超出选定窗范围时的返回值(如第一行不存在之前行)

last_value 一个组的最后一个值

lead(expr, ,访问之后的行,offset是缺省为1 的正数,表示相对行数,default是当超出选定窗范围时的返回值(如最后行不存在之前行)

max(expr) 最大值

min(expr) 最小值

ntile(expr) 按表达式的值和行在组中的位置编号,如表达式为4,则组分4份,分别为1 ~ 4的值,而不能等分则多出的部分在值最小的那组

percent_rank 类似cume_dist,1/(行的序数 - 1)

rank 相对序数,答应并列,并空出随后序号

ratio_to_report(expr) 表达式值 / sum(表达式值)

row_number 排序的组中行的偏移

stddev(expr) 标准差

stddev_pop(expr) 总体标准差

stddev_samp(expr) 样本标准差

sum(expr) 合计

var_pop(expr) 总体方差

var_samp(expr) 样本方差

variance(expr) 方差

regr_ xxxx(expr, expr) 线性回归函数

regr_slope:返回斜率,等于covar_pop(expr1, expr2) /var_pop(expr2)

regr_intercept:返回回归线的y截距,等于。

**g(expr1) -regr_slope(expr1, expr2) ***g(expr2)

regr_count:返回用于填充回归线的非空数字对的数目。

regr_r2:返回回归线的决定系数,计算式为:

if var_pop(expr2) =0 then return null

if var_pop(expr1) =0 and var_pop(expr2) !0 then return 1

if var_pop(expr1) >0 and var_pop(expr2 !=0 then

return power(corr(expr1,expr),2)

regr_**gx:计算回归线的自变量(expr2)的平均值,去掉了空对(expr1, expr2)后,等于**g(expr2)

regr_**gy:计算回归线的应变量(expr1)的平均值,去掉了空对(expr1, expr2)后,等于**g(expr1)

regr_sxx: 返回值等于regr_count(expr1, expr2) *var_pop(expr2)

regr_syy: 返回值等于regr_count(expr1, expr2) *var_pop(expr1)

regr_sxy: 返回值等于regr_count(expr1, expr2) *covar_pop(expr1, expr2)

首先:创建表及接入测试数据。

create table students

id number(15,0),area varchar2(10),stu_type varchar2(2),score number(20,2));

insert into students values(1, '111', g', 80 );

insert into students values(1, '111', j', 80 );

insert into students values(1, '222', g', 89 );

insert into students values(1, '222', g', 68 );

insert into students values(2, '111', g', 80 );

insert into students values(2, '111', j', 70 );

insert into students values(2, '222', g', 60 );

insert into students values(2, '222', j', 65 );

insert into students values(3, '111', g', 75 );

insert into students values(3, '111', j', 58 );

insert into students values(3, '222', g', 58 );

insert into students values(3, '222', j', 90 );

insert into students values(4, '111', g', 89 );

insert into students values(4, '111', j', 90 );

insert into students values(4, '222', g', 90 );

insert into students values(4, '222', j', 89 );

commit;

二、具体应用:

1、分组求和:

1)group by子句

-a、grouping sets

select id,area,stu_type,sum(score) score

from students

group by grouping sets((id,area,stu_type),(id,area),id)

order by id,area,stu_type;

理解grouping sets

select a, b, c, sum( d ) from t

group by grouping sets ( a, b, c )

等效于。select * from (

select a, null, null, sum( d ) from t group by a

union all

select null, b, null, sum( d ) from t group by b

union all

select null, null, c, sum( d ) from t group by c

-b、rollup

select id,area,stu_type,sum(score) score

from students

group by rollup(id,area,stu_type)

order by id,area,stu_type;

理解rollup

select a, b, c, sum( d )

from t

group by rollup(a, b, c);

等效于。select * from (

select a, b, c, sum( d ) from t group by a, b, c

union all

select a, b, null, sum( d ) from t group by a, b

union all

select a, null, null, sum( d ) from t group by a

union all

select null, null, null, sum( d ) from t

-c、cube

select id,area,stu_type,sum(score) score

from students

group by cube(id,area,stu_type)

order by id,area,stu_type;

理解cube

select a, b, c, sum( d ) from t

group by cube( a, b, c)

Oracle10g安装教程

刚刚接触oracle的人来说,从那里学,如何学,有那些工具可以使用,应该执行什么操作,一定回感到无助。所以在学习使用oracle之前,首先来安装一下oracle 10g,在来掌握其基本工具。俗话说的好 工欲善其事,必先利其器。我们开始吧!首先将oracle 10g的安装光盘放入光驱,如果自动运行,一...

3 安装oracle10g

1.安装oracle,设置密码。2.在oracle数据库命令行里敲 conn system 密码 3.创建新用户。create user 用户名 identified by 密码 授权。grant 权限,权限。to 用户名 一般授予这两个权限 grant connect,resource to 用户...

oracle10g详细安装教程

1.关闭防火墙。2.如果安装过oracle数据库要完全卸载以后再安装。3.找到安装文件下的ora10g server install 点下一步 点下一步 注意安装目录中不要出现中文及空格等一些特殊字符。点下一步 点下一步 注意 一点要记住全局数据库名,和sid 可以使用默认值。注意安装目录中不要出现...

其他用户还读了