Hive 窗口函数lead、lag
Hive的分析函數(shù)又叫窗口函數(shù),在oracle中就有這樣的分析函數(shù),主要用來(lái)做數(shù)據(jù)統(tǒng)計(jì)分析的。
Lag和Lead分析函數(shù)可以在同一次查詢中取出同一字段的前N行的數(shù)據(jù)(Lag)和后N行的數(shù)據(jù)(Lead)作為獨(dú)立的列。
這種操作可以代替表的自聯(lián)接,并且LAG和LEAD有更高的效率,其中over()表示當(dāng)前查詢的結(jié)果集對(duì)象,括號(hào)里面的語(yǔ)句則表示對(duì)這個(gè)結(jié)果集進(jìn)行處理。
函數(shù)介紹
LAG
LAG(col,n,DEFAULT) 用于統(tǒng)計(jì)窗口內(nèi)往上第n行值
參數(shù)1為列名,參數(shù)2為往上第n行(可選,默認(rèn)為1),參數(shù)3為默認(rèn)值(當(dāng)往上第n行為NULL時(shí)候,取默認(rèn)值,如不指定,則為NULL)
LEAD
與LAG相反
LEAD(col,n,DEFAULT) 用于統(tǒng)計(jì)窗口內(nèi)往下第n行值
參數(shù)1為列名,參數(shù)2為往下第n行(可選,默認(rèn)為1),參數(shù)3為默認(rèn)值(當(dāng)往下第n行為NULL時(shí)候,取默認(rèn)值,如不指定,則為NULL)
場(chǎng)景
問(wèn)題
用戶Peter在瀏覽網(wǎng)頁(yè),在某個(gè)時(shí)刻,Peter點(diǎn)進(jìn)了某個(gè)頁(yè)面,過(guò)一段時(shí)間后,Peter又進(jìn)入了另外一個(gè)頁(yè)面,如此反復(fù),那怎么去統(tǒng)計(jì)Peter在某個(gè)特定網(wǎng)頁(yè)的停留時(shí)間呢,又或是怎么統(tǒng)計(jì)某個(gè)網(wǎng)頁(yè)用戶停留的總時(shí)間呢?
數(shù)據(jù)準(zhǔn)備
現(xiàn)在用戶
總結(jié)
以上是生活随笔為你收集整理的Hive 窗口函数lead、lag的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 商城系统演示站 -多用户商城系统
- 下一篇: matlab 二维隐函数作图,matla