窗口函數(shù)-偏移函數(shù)

-- 偏移分析函數(shù)

-- 需求10: 查詢出支付時間間隔超過100天的用戶數(shù)

SELECT

count( DISTINCT a.user_name )

FROM

( SELECT user_name, pay_time, lead( pay_time ) over ( PARTITION BY user_name ORDER BY pay_time ) lead1 FROM user_trade ) a

WHERE

DATEDIFF( a.lead1, a.pay_time )> 100;

知識點總結(jié)

Lag和Lead函數(shù)可以在同一次查詢中取出同一字段的前N行的數(shù)據(jù)(Lag)和后N行的數(shù)據(jù)(Lead)

作為 獨立的列。

在實際應(yīng)用當中,若要用到取今天和昨天的某字段差值時,Lag和Lead函數(shù)的應(yīng)用就顯得尤為重

要。

lag(exp_str,offffset,defval) over(partion by ......order by ......)

lead(exp_str,offffset,defval) over(partion by ......order by ......)

exp_str是字段名稱。 offffset是偏移量,即是上1個或上N個的值,假設(shè)當前行在表中排在第5

行,則offffset 為3,則表示我 們所要找的數(shù)據(jù)行就是表中的第2行(即5-3=2)。offffset默認值為1。

defval默認值,當兩個函數(shù)取上N/下N個值,當在表中從當前行位置向前數(shù)N行已經(jīng)超出了表的

范 圍時,lag()函數(shù)將defval這個參數(shù)值作為函數(shù)的返回值,若沒有指定默認值,則返回NULL,

那么 在數(shù)學運算中,總要給一個默認值才不會出錯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容