Hive中的行号功能

时间:2016-05-27 07:07:45

标签: hive hiveql

如何在运行选择查询时为现有表生成行号? 例如:

select row_number(), * from emp;

我正在使用hive 0.13。我无法在我的环境中访问外部jar或udfs。 基础文件采用镶木地板格式。

提前致谢!

2 个答案:

答案 0 :(得分:19)

ROW_NUMBER()windowing function,因此需要与OVER子句一起使用。只是不要指定任何PARTITION

SELECT *, ROW_NUMBER() OVER () AS row_num
FROM emp
--- other stuff

答案 1 :(得分:4)

row_number()可用于查找,例如,即您网站上用户的最近访问次数。

SELECT user_id,user_name,timestamp
FROM (
SELECT user_id,user_name,timestamp,row_number() over (partition by userid order by timestamp desc) as visit_number 
from user) user_table
    WHERE visit_number = 1