在Hive中使用ROW_NUMBER()生成行号 在Hive中,使用ROW_NUMBER()窗口函数来生成行号,其实是一个很常见的需求。简单来说,它就是给查询结果里的每一行打上一个唯一的序号——类似于Excel里给表格加的行号,但比那个灵活不少。 基本用法 操作起来直接复制下面这段代码就行: SEL
Hive row_number 生成行号
作者:技术拾光
时间:2026-06-25
浏览:82
文章目录
在Hive中使用ROW_NUMBER()生成行号
在Hive中,使用ROW_NUMBER()窗口函数来生成行号,其实是一个很常见的需求。简单来说,它就是给查询结果里的每一行打上一个唯一的序号——类似于Excel里给表格加的行号,但比那个灵活不少。

基本用法
操作起来直接复制下面这段代码就行:
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()有区别。如果你需要处理重复值的情况,可以试试后面那两个函数,不过那是另一个话题了。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。