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分析函式之LEAD和LAG實際應用Oracle函式
- Hive 分析函式lead、lag例項應用Hive函式
- Oracle分析函式之開窗函式over()詳解Oracle函式
- SQL中常用的字串LEFT函式和RIGHT函式詳解!SQL字串函式
- vue3函式setUp和reactive函式詳細講解Vue函式React
- 詳解Java函式式介面Java函式
- SetupDiGetClassDevs函式詳解dev函式
- 【SQL】Lag/Rank/Over視窗函式揭秘,資料分析之旅SQL函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- mysql常用函式詳解MySql函式
- 箭頭函式詳解函式
- python socket函式詳解Python函式
- 建構函式詳解函式
- 函式引數詳解函式
- 3.11 solidity 函式詳解Solid函式
- fcntl函式用法詳解函式
- 人工智慧---神經網路啟用函式恆等函式、sigmoid函式、softmax函式詳解人工智慧神經網路函式Sigmoid
- hive視窗分析函式使用詳解系列二之分組排序視窗函式Hive函式排序
- 從__proto__和prototype詳解物件和函式物件函式
- hive視窗分析函式使用詳解系列一Hive函式
- Oracle分析函式與視窗函式Oracle函式
- 函式詳解 | VLOOKUP 函式:最為人熟知的偵探函式
- Oracle中pivot函式詳解Oracle函式
- Python中Numpy函式詳解Python函式
- Java建構函式詳解Java函式
- TypeScript中的函式詳解TypeScript函式
- 箭頭函式this指向詳解函式
- PHP BC Math 函式詳解PHP函式
- vimscript-expand函式詳解函式
- jquery.ajaxSetup()函式詳解jQuery函式
- SQL視窗分析函式使用詳解系列三之偏移量類視窗函式SQL函式
- Kotlin之“with”函式和“apply”函式Kotlin函式APP
- Python正規表示式 findall函式詳解Python函式
- python函式每日一講 - float函式型別轉換詳解Python函式型別
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- 建構函式與解構函式函式
- 詳解箭頭函式和普通函式的區別以及箭頭函式的注意事項、不適用場景函式
- JavaScript函式宣告和函式表示式區別JavaScript函式