久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

oracle中LAG函數怎么用

142次閱讀
沒有評論

共計 1489 個字符,預計需要花費 4 分鐘才能閱讀完成。

這篇文章給大家分享的是有關 oracle 中 LAG 函數怎么用的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

該內容來自官方翻譯,因為今天看到一個查詢語句中使用該函數,不是太明白用法,這里先簡單了解一下。

LAG 是一個分析函數,主要提供用于同時訪問多行數據,且此數據不通過自連接獲取。當從查詢獲取多行值和一個位置游標,LAG 會訪問游標位置中物理偏移量優先的數據,

offset(偏移量)參數為一個大于 0 的可選整數值。如果不指定偏移量,默認值為 1。

當 offset 超過顯示范圍,則顯示選項 default 的值。如果不指定 default 值,則默認為空。

{RESPECT | IGNORE} NULLS 選項決定是否將空值或 VALUE_EXPR 表達式的值包含在內,或將這些值淘汰掉,默認為 RESPECT NULLS

對于表達式 VALUE_EXPR,不可以在 LAG 中嵌套使用任何其他的分析函數,但可以使用內建函數。

文檔中給出的列子比較具有代表性:

SELECT hire_date, last_name, salary,
 LAG(salary, 1, 0 ) OVER (ORDER BY hire_date) AS prev_sal
 FROM employees
 WHERE job_id =  PU_CLERK 
 ORDER BY hire_date;

------------------- --------------------------------------------------------------------------- ---------- ---------- 2003-05-18 00:00:00 Khoo 3100 0 2005-07-24 00:00:00 Tobias 2800 3100 2005-12-24 00:00:00 Baida 2900 2800 2006-11-15 00:00:00 Himuro 2600 2900 2007-08-10 00:00:00 Colmenares 2500 2600

如何理解 LAG 工作的機制,因為獲取的結果是多行數據:

SQL  select hire_date,last_name,salary from employees where job_id =  PU_CLERK  order by hire_date;
HIRE_DATE LAST_NAME SALARY
------------------- --------------------------------------------------------------------------- ----------
2003-05-18 00:00:00 Khoo 3100
2005-07-24 00:00:00 Tobias 2800
2005-12-24 00:00:00 Baida 2900
2006-11-15 00:00:00 Himuro 2600
2007-08-10 00:00:00 Colmenares 2500

從上下兩個查詢結果不難看出,LAG 將查詢的結果進行偏移,其偏移量為 1,獲得了上一個查詢結果, 而第一行記錄 (salary=3100) 的上一個查詢不存在的時候,offset 超過了顯示范圍,所以用指定的 default 值 0 替代。

感謝各位的閱讀!關于“oracle 中 LAG 函數怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-24發表,共計1489字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 子洲县| 郁南县| 彭水| 禄劝| 嘉兴市| 霍林郭勒市| 确山县| 湄潭县| 岳普湖县| 合肥市| 金门县| 景泰县| 西畴县| 富顺县| 化德县| 贵阳市| 隆化县| 永泰县| 沐川县| 犍为县| 旺苍县| 大化| 汽车| 香港| 霍邱县| 翁源县| 永福县| 南部县| 金堂县| 屏南县| 安义县| 石景山区| 外汇| 库伦旗| 石泉县| 石城县| 本溪| 察雅县| 利川市| 大名县| 上饶县|