前面我們學(xué)習(xí)的first_value和last_value 取的是排序后的數(shù)據(jù)截止當(dāng)前行的第一行數(shù)據(jù)和最后一行數(shù)據(jù)
Lag和Lead分析函數(shù)可以在一次查詢中取出當(dāng)前行后N行和前N行的數(shù)據(jù),雖然可以不用排序,但是往往只有在排序的場景下取前面或者后面N 行數(shù)據(jù)才有意義
這種操作可以代替表的自聯(lián)接,并且LAG和LEAD有更高的效率
- LAG(col,n,DEFAULT) 用于統(tǒng)計窗口內(nèi)往上第n行值
第一個參數(shù)為列名,第二個參數(shù)為往上第n行(默認為1),第三個參數(shù)為默認值(當(dāng)往上第n行為NULL時候,取默認值,如不指定,則為NULL)
- LEAD(col,n,DEFAULT) 用于統(tǒng)計窗口內(nèi)往下第n行值
第一個參數(shù)為列名,第二個參數(shù)為往下第n行(默認為1),第三個參數(shù)為默認值(當(dāng)往下第n行為NULL時候,取默認值,如不指定,則為NULL)
-
lead(col1,n,default)over(partiton by col2,order by col3):表示數(shù)據(jù)按照col2分區(qū)后,按照col3排序,然后在該條記錄向后尋找n條數(shù)據(jù)(n一般為1),找到數(shù)據(jù)中的col1列。若為最后一條數(shù)據(jù),則為default(默認為Null)。文章來源:http://www.zghlxwxcb.cn/news/detail-597916.html
-
lag(col1,n,default)over(partiton by col2,order by col3):表示數(shù)據(jù)按照col2分區(qū)后,按照col3排序,然后在該條記錄向前尋找n條數(shù)據(jù)(n一般為1),找到數(shù)據(jù)中的col1列。若為最后一條數(shù)據(jù),則為default(默認為Null)。文章來源地址http://www.zghlxwxcb.cn/news/detail-597916.html
到了這里,關(guān)于Hive窗口函數(shù)-lead/lag函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!