hive開窗函式總結

2021-09-22 21:25:19 字數 1938 閱讀 9872

1,sum()函式

注:沒有order by,不僅分區內沒有排序,sum()計算的pv也是整個分割槽的pv。

max()函式無論有沒有order by 都是計算整個分割槽的最大值

2,ntile 函式

ntile(n),用於將分組資料按照順序切分成n片,返回當前切片值

如果切片不均勻,預設增加第乙個切片的分布

select cookieid,createtime,pv,

ntile(2) over(partition by cookieid order by createtime) as ntile1, --分組內將資料分成2片

ntile(3) over(partition by cookieid order by createtime) as ntile2,  --分組內將資料分成3片

ntile(4) over(partition by cookieid order by createtime) as ntile3   --將所有資料分成4片

3,row_number 函式

應用場景:獲取分組內排序第一的記錄、獲取乙個session中的第一條refer等

rankdense_rankrow_number三者對比:

Hive 開窗函式

普通聚合函式聚合的行集是組,開窗函式聚合的行集是視窗。因此,普通聚合函式每組 group by 只有乙個返回值,而開窗函式則可以為視窗中的每行都返回乙個值。分析函式 如 sum max row number 視窗子句 over函式 over partition by column n order b...

Hive開窗函式

show functions desc function extended upper current row 當前行 n preceding 向前取第n行 n following 向後取第n行 unbounded preceding 首行 unbounded following 尾行 order ...

Hive 開窗函式 cume dist

題目 獲取每個班級中,以數學成績排序,取後20 成績從低到高 的學生資訊 1 準備工作 資料 studentid,classid course,score 001,001,math,15 001,002,math,20 001,003,math,35 001,004,math,40 001,005,...