You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hive子查询报错:无法识别where rownum = 语法,请求技术支持

解决Hive中ParseException: cannot recognize input near 'where' 'rownum' '='的问题

错误原因

Hive不支持Oracle风格的rownum语法,你在子查询里写的where rownum = ...是Oracle专属写法,Hive的SQL解析器无法识别该语法,因此抛出解析异常。

解决方案

用Hive支持的**窗口函数row_number()**替代rownum,以下是具体示例:

错误写法(Oracle风格,Hive不兼容)

select * from (
    select id, name from user_info where rownum = 1
) sub;

正确写法(使用row_number())

select id, name from (
    select id, name, row_number() over() as rn from user_info
) sub where sub.rn = 1;

如果需要按特定字段排序后取指定行,比如按create_time倒序取最新的一条数据:

select id, name from (
    select id, name, create_time, row_number() over(order by create_time desc) as rn from user_info
) sub where sub.rn = 1;

简化场景:取前N条数据

如果只是想获取前N条数据,无需子查询的话,直接用Hive的limit关键字更简洁:

select id, name from user_info limit 1;

内容的提问来源于stack exchange,提问作者srinivasulu thuppukonda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:19:54