1.全域性排序 order by(只有乙個reduce,對所有資料進行排序) 只要使用 order by ,reduce只有乙個。
2.sort by 內部有序
3.distribute by 分割槽字段 store by 排序字段
4.cluster by:當分割槽條件和排序條件相同使用cluster by .
5.group by:對檢索的資料進行單純的分組,一般和聚合函式一起使用。
6.partition by:用來輔助查詢,縮小查詢範圍,加快資料的檢索速度和對資料按照一定的規格和條件進行管理。
over():over是用於資料的分割槽和排序,主要使用在聚合函式後邊使用
row_number(): 對排序後的每行生成乙個行號,且不存在重複的序號位
rank():排名函式
dense_rank() 相同排序不跳序號位(允許併排次序):
lag:落後n 個值 (預設落後1個值) 用於統計視窗內往上第n行值
lead:比lag快n個值 用於統計視窗內往下第n行值
last_value:取分組內排序後,截止到當前行,最後乙個值
first_value:取分組內排序後,截止到當前行,第乙個值
preceding:往前
following:往後
current row:當前行
(1)用於分割槽排序
(2)動態group by
(3)top n
(4)累計計算
(5)層次查詢
視窗函式與分析函式 區別:
視窗函式:對於每個組返回多行,
聚合函式:而聚合函式對於每個組只返回一行
溫故而知新,可以為師矣。
keep up the good work。
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開窗函式總結
1,sum 函式 注 沒有order by,不僅分區內沒有排序,sum 計算的pv也是整個分割槽的pv。max 函式無論有沒有order by 都是計算整個分割槽的最大值 2,ntile 函式 ntile n 用於將分組資料按照順序切分成n片,返回當前切片值 注 如果切片不均勻,預設增加第乙個切片的...