我想按如下所示对数据进行分区。但是正如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 排名-LMLPHP

关于hadoop - 重设 hive 排名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38147588/

10-16 01:28