Hive 視窗函式與分析函式

2021-07-27 07:55:44 字數 1178 閱讀 4046

描述lag()

lag()視窗函式返回分割槽中當前行之前行(可以指定第幾行)的值。 如果沒有行,則返回null。

lead()

lead()視窗函式返回分割槽中當前行後面行(可以指定第幾行)的值。 如果沒有行,則返回null。

first_value

first_value視窗函式返回相對於視窗中第一行的指定列的值。

last_value

last_value視窗函式返回相對於視窗中最後一行的指定列的值。

(rows | range) between (unbounded | [num]) preceding and ([num] preceding | current row | (unbounded | [num]) following)

(rows | range) between current row and (current row | (unbounded | [num]) following)

(rows | range) between [num] following and (unbounded | [num]) following

描述rank

返回資料項在分割槽中的排名。排名值序列可能會有間隔

dense_rank

返回資料項在分割槽中的排名。排名值序列是連續的,不會有間隔

percent_rank

計算當前行的百分比排名

row_number

確定分割槽中當前行的序號

cume_dist

計算分割槽中當前行的相對排名

ntile()

將每個分割槽的行盡可能均勻地劃分為指定數量的分組

count(distinct a) over (partition by c)
count(distinct a) 

over (partition by c order

byd rows between 1 preceding and 1 following)

select

rank() over (order

bysum(b))

from

tgroup

by a;

Hive 視窗分析函式

1.lag col,n,default 用於統計視窗內往上第n行值 第乙個引數為列名,第二個引數為往上第n行 可選,預設為1 第三個引數為預設值 當往上第n行為null時候,取預設值,如不指定,則為null 2.lead col,n,default 用於統計視窗內往下第n行值 第乙個引數為列名,第二...

Hive視窗函式

1 定義 視窗函式屬於sql中比較高階的函式 mysql從8.0版本才支援視窗函式,5.6,5.7都沒有視窗函式 oracle 裡面一直支援視窗函式 hive也支援視窗函式 以下函式才是視窗函式 視窗函式 13個 lead lead col,n,default val 往後第n行資料 col 列名 ...

hive 視窗函式

hive高階函式 row number rank dense rank 這三個視窗函式的使用場景非常多 例子 員工表中,求每個崗位薪水前兩名的員工資訊 name,入職日期,sal row number over partition by job order by sal desc 這個函式會返回組內...