hive排序窗口函数三种方式:

  • ROW_NUMBER()
  • RANK() 
  • DENSE_RANK ()​​​​​​​

原始数据:

hive排序窗口函数三种方式对比

执行语句:

SELECT 
cookieid,
createtime,
pv,
RANK() OVER(PARTITION BY cookieid ORDER BY pv desc) AS rn1,
DENSE_RANK() OVER(PARTITION BY cookieid ORDER BY pv desc) AS rn2,
ROW_NUMBER() OVER(PARTITION BY cookieid ORDER BY pv DESC) AS rn3 
FROM itcast_t2 
WHERE cookieid = 'cookie1';

结果:

hive排序窗口函数三种方式对比

总结: 

ROW_NUMBER:从1开始,按照顺序,生成分组内记录的序列

RANK:生成数据项在分组中的排名,排名相等会在名次中留下空位

DENSE_RANK :生成数据项在分组中的排名,排名相等会在名次中不会留下空位

相关文章:

  • 2021-08-06
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
猜你喜欢
  • 2021-07-03
  • 2021-05-10
  • 2021-04-21
  • 2022-12-23
  • 2021-08-12
  • 2022-12-23
相关资源
相似解决方案