這篇文章給大家分享的是有關oracle中LAG函數(shù)怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:空間域名、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、神木網(wǎng)站維護、網(wǎng)站推廣。該內容來自官方翻譯,因為今天看到一個查詢語句中使用該函數(shù),不是太明白用法,這里先簡單了解一下。
LAG是一個分析函數(shù),主要提供用于同時訪問多行數(shù)據(jù),且此數(shù)據(jù)不通過自連接獲取。當從查詢獲取多行值和一個位置游標,LAG會訪問游標位置中物理偏移量優(yōu)先的數(shù)據(jù),
offset(偏移量)參數(shù)為一個大于0的可選整數(shù)值。如果不指定偏移量,默認值為1。
當offset超過顯示范圍,則顯示選項default的值。如果不指定default值,則默認為空。
{RESPECT | IGNORE} NULLS選項決定是否將空值或VALUE_EXPR表達式的值包含在內,或將這些值淘汰掉,默認為RESPECT NULLS
對于表達式VALUE_EXPR,不可以在LAG中嵌套使用任何其他的分析函數(shù),但可以使用內建函數(shù)。
文檔中給出的列子比較具有代表性:
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; HIRE_DATE LAST_NAME SALARY PREV_SAL ------------------- --------------------------------------------------------------------------- ---------- ---------- 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工作的機制,因為獲取的結果是多行數(shù)據(jù):
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函數(shù)怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。