hive開窗函數詳解


1. OVER():用於指定分析函數工作時的數據窗口大小,這個數據窗口大小可能會隨着行的變而變化;

2. CURRENT ROW:當前行;

  1. n PRECEDING:往前n行數據;
  2. n FOLLOWING:往后n行數據;
  3. UNBOUNDED:起點,UNBOUNDED PRECEDING 表示從前面的起點, UNBOUNDED FOLLOWING表示到后面的終點;
  4. LAG(col,n,default_val):往前第n行數據;
  5. LEAD(col,n, default_val):往后第n行數據;
  6. NTILE(n):把有序分區中的行分發到指定數據的組中,各個組有編號,編號從1開始,對於每一行,NTILE返回此行所屬的組的編號。這個函數需要注意:n必須為int類型。   

以下舉幾個具體的示例說明其具體作用

1. 當前行和自己下一行的和 

select *,sum(trade_amount) over(order by TRADE_DATE rows between current row and 1 following)
from default.tmp_test

 

 

2  當前行,到第二行的的統計值,就是統計自己行和自己后兩行的累計之和

select *,sum(trade_amount) over(order by TRADE_DATE rows between current row and 2 following)
from default.tmp_test

 

3.從當前行一直累加到最后一行

select *,sum(trade_amount) over(partition by trade_type order by TRADE_DATE rows between unbounded preceding and current row)
from default.tmp_test;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM