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

如何在Hive的SELECT语句中提取字符串数组的最大值?

在Hive中提取字符串数组的最大值(无需explode/join)

Hive的MAX()函数会将数组视为整体进行比较,而非遍历元素取最大值,因此直接执行SELECT MAX(ch)会返回原数组。要在SELECT语句内完成操作,可通过以下两种方式实现:

方法一:使用transform+array_max(Hive 2.3.0及以上版本支持)

SELECT array_max(transform(ch, x -> cast(x as int))) AS max_value
FROM (SELECT array("4", "9", "1") AS ch) t;
  • transform(ch, x -> cast(x as int)):把字符串数组中的每个元素转为整数,得到数值数组[4,9,1]
  • array_max():直接提取数值数组的最大值,最终返回9

方法二:使用transform+sort_array(兼容旧版本Hive)

SELECT sort_array(transform(ch, x -> cast(x as int)))[size(ch)-1] AS max_value
FROM (SELECT array("4", "9", "1") AS ch) t;
  • sort_array():将转换后的数值数组升序排序,得到[1,4,9]
  • size(ch)-1:取排序后数组的最后一个元素,即最大值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 14:12:06