row_number() over(partition by column1 order by column2)
select id,dept,salary,row_number() over(partition by dept order by salary)
id dept salary row_number
1 a 10000 1
2 a 9000 2
3 a 8000 3
4 b 12000 1
5 b 11000 2
其中結果會首先按照dept分組公升序排序,然後按照salary降序進行排序,而後面的row_number則是在每個dept分組中的排序號。
注:我們可以使用row_number()函式進行去重,使用上述兩個列名首先對其進行雙重排序,最後在這個hql語句外層再新增乙個判斷row_number的值為1的條件語句獲取分組排序後的第一條資料進行獲取,即達到了去重的效果。
HIVE中row number函式的描述與使用場景
假設乙個場景 存在表user score,該錶的資料如下 table id rate score 1 0 4 10 2 0 4 40 3 0 4 30 4 0 4 20 5 5 10 10 6 5 10 40 7 5 10 30 8 5 10 20 9 11 20 10 10 11 20 40 11...
Hive的分組排序方法 row number
這個方法總而言之就是幫助使用者減少工作量 比如,如下結構 create table user order user id int comment 使用者id pro id int comment 產品id value string comment 查出每個使用者買的價值最高的兩個用品,如果不用row...
Hive 用ROW NUMBER取每組top n
天用hive查資料時需要取每個分組的第一條資料,查了一發現hive 已經從0.11.0版本加入row number函式,可以滿足查詢的需求。row number 是從1開始,按照順序,生成分組內記錄的序列 用法如下 row number over partition by column a orde...