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

Apache Hive中SELECT MAX带GROUP BY查询返回全表所有行问题

Apache Hive查询结果不符合预期的错误分析

你使用的原始查询语句如下:

SELECT date_col,max(rate) FROM crypto group by date_col ;

核心错误原因

你在查询中使用了GROUP BY date_col子句,该语法的作用是将表中所有数据按date_col字段的取值做分组,对每一组单独执行聚合计算(也就是你写的max(rate))。所以最终返回的行数等于crypto表中date_col字段去重后的取值数量,自然会返回多行结果,和你预期的全局唯一1行结果的需求不符。

符合预期的正确写法

如果你的需求是获取整张表的最大rate值,以及该最大值对应的date_col,可以选择以下两种写法:

  • 仅需要全局最大rate值,不需要对应日期:
SELECT max(rate) FROM crypto;
  • 需要同时获取最大rate对应的date_col:
SELECT date_col, rate
FROM (
    SELECT 
        date_col, 
        rate,
        ROW_NUMBER() OVER(ORDER BY rate DESC) AS rank_num
    FROM crypto
) tmp
WHERE rank_num = 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:18:01