描述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 這個函式會返回組內...