hive的row_number()函数
功能
- 用于分组,比方说依照uuid分组
- 组内可以依照某个属性排序,比方说依照uuid分组,组内按照imei排序
- 语法为
row_number() over (partition by xxx order by xxx) rank
,其中rank为分组的别名,你也可以换个名字比方说换成hahahah - 取组内某个数据,可以使用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;