在 Hive 中,ROW_NUMBER() 窗口函数常用于为查询结果生成连续且唯一的行号,这是数据分析和分页场景中非常实用的技巧。简单来说,它能为每条记录分配一个递增的序号,类似 Excel 表格中的行号,但功能更强大、更灵活。

以下是一个具体的 Hive ROW_NUMBER() 使用示例,可直接复制参考:
SELECT column1, column2, ROW_NUMBER() OVER (ORDER BY column1 ASC) as row_numberFROM your_table;
该语句的核心在于 OVER (ORDER BY column1 ASC) 子句。它指示 Hive 按照 column1 字段升序排列数据,然后从 1 开始依次为每一行分配唯一编号。如果你需要倒序排列(从大到小编号),只需将 ASC 改为 DESC;若想根据其他字段排序,把 column1 替换为目标列名即可。
另外需要特别注意:ROW_NUMBER() 生成的序号是严格连续且不重复的,即使排序字段存在重复值,也不会产生相同的行号——这与 RANK() 和 DENSE_RANK() 的行为不同。如果你需要处理重复值场景下的排名问题,可以考虑使用后两个函数,不过那是另一个话题了。
