我想按如下所示对数据进行分区。但是正如link中给出的那样,没有内置函数可以从1开始再次重置Rank。我已经尝试过ROW_NUMBER(), RANK(), DENSE_RANK()
。那么,谁能告诉我如何实现这一目标?
Col1 Col2 Rank
cookie1 ABC 1
cookie1 ABC 1
cookie1 EFG 2
cookie1 EFG 2
cookie1 IJK 3
cookie1 IJK 3
cookie2 XYZ 1
cookie2 XYZ 1
cookie2 LMN 2
最佳答案
将DENSE_RANK()与PARTITION BY子句一起使用。
用temp as(
select Col1 ,Col2 , DENSE_RANK() OVER
(PARTITION BY Col1 ORDER BY Col2 ) AS Rank
from rnktest
)
select * from temp ;
关于hadoop - 重设 hive 排名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38147588/