ORALCE函式:LAG()和LEAD() 分析函式詳解
Lag
和Lead
分析函式可以在同一次查詢中取出同一欄位的前N行的資料(Lag
)和後N行的資料(Lead
)作為獨立的列。
在實際應用當中,若要用到取今天和昨天的某欄位差值時,Lag
和Lead
函式的應用就顯得尤為重要。當然,這種操作可以用表的自連線實現,但是LAG
和LEAD
與left join
、rightjoin
等自連線相比,效率更高,SQL更簡潔。下面我就對這兩個函式做一個簡單的介紹。
函式語法如下:
lag(exp_str,offset,defval) over(partion by ..order by …)
lead(exp_str,offset,defval) over(partion by ..order by …)
其中exp_str
是欄位名
Offset
是偏移量,即是上1個或上N
個的值,假設當前行在表中排在第5行,則offset
為3,則表示我們所要找的資料行就是表中的第2行(即5-3=2)。
Defval
預設值,當兩個函式取上N/下N個值,當在表中從當前行位置向前數N行已經超出了表的範圍時,lag()
函式將defval
這個引數值作為函式的返回值,若沒有指定預設值,則返回NULL
,那麼在數學運算中,總要給一個預設值才不會出錯。
完整例子:
1.資料庫中的原始資料
2.對SAL列:取上一個SAL列作為單獨的列,若不指定預設值,則預設值為NULL
3.對SAL列:取上一個SAL列作為單獨的列,指定預設值為0
4.對SAL列:取下一個SAL列作為單獨的列,指定預設值為0
5.做運算:看薪水跟上次相比漲了多少
相關文章
- 【分析函式】Oracle分析函式之LAG和LEAD函式Oracle
- lead和lag函式函式
- lag和lead函式函式
- oracle函式之lag和leadOracle函式
- oracle中lead和lag函式Oracle函式
- 使用LAG和LEAD函式統計函式
- oracle之函式LAG,LEADOracle函式
- oracle lag與lead分析函式簡介Oracle函式
- Oracle分析函式之LEAD和LAG實際應用Oracle函式
- Hive 分析函式lead、lag例項應用Hive函式
- 分析函式 - LAG函式
- mysql實現oracle的lead和lag函式功能MySqlOracle函式
- [Oracle]高效的SQL語句之分析函式(四)--lag()/lead()OracleSQL函式
- oracle中LAG()和LEAD()等分析統計函式的用法(統計月增長率)Oracle函式
- oralce函式大全函式
- lead lag rank()over()dense_rank()row_number()over()rollupcube幾大分析函式函式
- Socket send函式和recv函式詳解函式
- Oracle 分析函式詳解Oracle函式
- Oracle分析函式之開窗函式over()詳解Oracle函式
- 關於lag函式的用法函式
- PL/SQL單行函式和組函式詳解(轉)SQL函式
- vue3函式setUp和reactive函式詳細講解Vue函式React
- 詳解Java函式式介面Java函式
- 尤拉函式詳解函式
- malloc函式詳解函式
- kill() 函式詳解函式
- ioctl()函式詳解函式
- gluLookAt 函式詳解函式
- fopencookie函式詳解Cookie函式
- setjmp 和 longjmp 函式使用詳解函式
- PHP函式處理函式例項詳解PHP函式
- SQL中常用的字串LEFT函式和RIGHT函式詳解!SQL字串函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- Oracle聚合函式/分析函式Oracle函式
- Oracle分析函式七——分析函式案例Oracle函式
- 母函式詳解和史上最通用最高效的母函式模板函式
- 建構函式詳解函式
- 函式引數詳解函式