Hive 四種排序函式與開窗函式

2021-10-04 07:09:08 字數 864 閱讀 5039

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片,返回當前切片值 注 如果切片不均勻,預設增加第乙個切片的...