oracle 窗口函数的统计使用有关问题

oracle 窗口函数的统计使用问题熟悉oracle窗口函数的,下面两题应该还是挺简单,我就是写出来的语句有问题,

oracle 窗口函数的统计使用问题
熟悉oracle窗口函数的,下面两题应该还是挺简单,我就是写出来的语句有问题,
如何利用oracle自有的窗口函数实现当前行的某个减去上一行的值啊,例如
rownum || name|| age || sal  
1 || A1 || 22 || 100
2 || A2 || 24 || 120
3 || A3 || 23 || 150
4 || A3 || 25 || 230

统计的结果我想得到 

rownum || name|| age || sal || 统计结果
1 || A1 || 22 || 100 || 100
2 || A2 || 24 || 120 || 20
3 || A3 || 23 || 150 || 30
4 || A3 || 25 || 230 || 80 


2.如何用函数十二个月的的日期函数,根据statdate字段,实时统计以它为基准的过去十二个月中sal字段的累积和,对于前十二个月的累积数,只需要累积到第一个月就行,
statdat code A1 sal
2009-1-31 010403
2009-2-28 010403
2009-3-31 010403
2009-4-30 010403
2009-5-31 010404
2009-6-30 010404
2009-7-31 010404
2009-8-31 010404
2009-9-30 010405
2009-10-31010405
2009-11-30010405
2009-12-31010405
2010-1-31 010400
2010-2-28 010400
2010-3-31 010400
2010-4-30 010401
2010-5-31 010401


[解决办法]

SQL code
第二题:select t.*,       sum(sal) over(order by statdate rows 12 preceding) "前十二个月和"  from test_kpi_busi_claim_mon tSTATDATE    RISKCODE A1 SAL       前十二个月和----------- -------- -- --- ------------2009-1-31   0104     0    3            32009-2-28   0104     0    3            62009-3-31   0104     0    3            92009-4-30   0104     0    3           122009-5-31   0104     0    4           162009-6-30   0104     0    4           202009-7-31   0104     0    4           242009-8-31   0104     0    4           282009-9-30   0104     0    5           332009-10-31  0104     0    5           382009-11-30  0104     0    5           432009-12-31  0104     0    5           482010-1-31   0104     0    0           482010-2-28   0104     0    0           452010-3-31   0104     0    0           422010-4-30   0104     0    1           402010-5-31   0104     0    1           382010-6-30   0104     0    1           352010-7-31   0104     0    1           322010-8-31   0104     0    1           29 STATDATE    RISKCODE A1 SAL       前十二个月和----------- -------- -- --- ------------2010-9-30   0104     0    1           262010-10-31  0104     0    2           232010-11-30  0104     0    2           202010-12-31  0104     0    3           182011-1-31   0104     0    0           132011-2-28   0104     0    0           132011-3-31   0104     0    0           132011-4-30   0104     0    0           132011-5-31   0104     0    0           122011-6-30   0104     0    0           112011-7-31   0104     0    6           162011-8-31   0104     0    6           212011-9-30   0104     0    6           262011-10-31  0104     0    6           312011-11-30  0104     0    6           352011-12-31  0104     0    9           422012-1-31   0104     0    0           39 37 rows selected