轉自:http://blog.csdn.net/maqinqin/archive/2008/11/17/3320247.aspx
oracle 統計分析函數 lead
語法結構:
lead(value_expr [,offset][,default]) over([query_partition_clause] order by Order_by_clause)
參數說明:
value_expr 值表達式,通常是字段,也可是是表達式。value_expr本身不支持分析函數,也就是lead不支持多層調用。
offset 偏移,應該是很熟悉的數學概念了,或者是相對偏移,表格來開當前行的第offset行,如果offset是整數就表示是順序下的前第n行,如果是負數就是往後第n行。 如果不提供這個參數,就是默認爲1.
default 默認值,如果沒有找到,應該返回什麼值的意思,有點類似nvl(col,value)。如果沒有設置,且找不到,那麼就返回Null
over 可以簡單地翻譯爲在什麼。。。的基礎之上
query_partition_clause 分區語句,對結果集合分區的語句,是可選的,如果沒有就是所有的一個分區。
Order_by_clause 排序語句 必須需要 ,形如order by xxx desc/asc
解釋示例:
SQL> select * from test_value;
MONS JJR CJL CJJE
---------- ---------- ---------- ----------
200801 LZF 250 1999
200802 LZF 200 2000
200803 LZF 300 1000
200804 LZF 23 189
200805 LZF 356 456
200806 LZF 100 200
200807 LZF 600 700
200808 LZF 23 123
200809 LZF 400 500
9 rows selected
SQL>
SQL> select rownum 序號,Mons,cjl cjl_01,
2 lead(cjl,1) over (order by mons desc) cjl_02,
3 lead(cjl,2) over (order by mons desc) cjl_03,
4 lead(cjl,3) over (order by mons desc) cjl_04,
5 lead(cjl,4) over (order by mons desc) cjl_05,
6 lead(cjl,5) over (order by mons desc) cjl_06,
7 lead(cjl,6) over (order by mons desc) cjl_07,
8 lead(cjl,7) over (order by mons desc) cjl_08,
9 lead(cjl,8) over (order by mons desc) cjl_09
10 from test_value
序號 MONS CJL_01 CJL_02 CJL_03 CJL_04 CJL_05 CJL_06 CJL_07 CJL_08 CJL_09
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
9 200809 400 23 600 100 356 23 300 200 250
8 200808 23 600 100 356 23 300 200 250
7 200807 600 100 356 23 300 200 250
6 200806 100 356 23 300 200 250
5 200805 356 23 300 200 250
4 200804 23 300 200 250
3 200803 300 200 250
2 200802 200 250
1 200801 250
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/maqinqin/archive/2008/11/17/3320247.aspx