数据如下:
SeqID Data1 Data2
1000 3453 3454
1001 2377456 ....
1002 4574556
1003 4346456
1004 5756
1005 4954456
1007 676456
....需求如下:
按SeqID的顺序,取前N个样本的标准差(每个结果,都是当前行的前N个样本的covar_samp(Data1,Data2))。
结果如下:
SeqID 标准差
1000 结果1
1001 结果2
1002 结果3
1003 结果4
....
SeqID Data1 Data2
1000 3453 3454
1001 2377456 ....
1002 4574556
1003 4346456
1004 5756
1005 4954456
1007 676456
....需求如下:
按SeqID的顺序,取前N个样本的标准差(每个结果,都是当前行的前N个样本的covar_samp(Data1,Data2))。
结果如下:
SeqID 标准差
1000 结果1
1001 结果2
1002 结果3
1003 结果4
....
select covar_samp(Data1,Data2)
from Table
where SeqID in
(
--实际上,SeqID不是这么取得,下面的取法只是为了表达方便
select SeqID from Table
where SeqID<=1005 and RowNum<=N
order by SeqID desc
)如果指定的SeqID是一个范围,那么该如何写?
select covar_samp(data1,data2) over(order by seqid rows between N preceeding and current row) from table
但是在函数及存储过程中,只能这样:
select covar_samp(data1,data2) over(order by seqid rows between N preceeding and 0 following) from table