hive的row_number()函数

hive的row_number()函数

功能
  1. 用于分组,比方说依照uuid分组
  2. 组内可以依照某个属性排序,比方说依照uuid分组,组内按照imei排序
  3. 语法为row_number() over (partition by xxx order by xxx) rank,其中rank为分组的别名,你也可以换个名字比方说换成hahahah
  4. 取组内某个数据,可以使用where a.rank=1之类的语法去取
实例
  • 按照uuid分组,组内使用imei排序,取其中第一行数据,然后计算数据量
select count(*) from (select uuid,imei,row_number() over (partition by uuid order by imei) rank from table_name where dt=20170909 group by uuid,imei) a where a.rank=1;
参考
原文地址:https://www.cnblogs.com/wswang/p/7718098.html