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

如何在Presto(含Amazon Athena)中按指定键提取对应值

在Amazon Athena(Presto)中提取匹配字符串列的Map值

你可以直接利用Presto的Map下标访问语法,用字符串列的值作为键,从Map列中提取对应的数值。如果Map中不存在匹配的键,结果会返回NULL,可以用coalesce函数指定默认值来处理这种情况。

示例查询

假设你的表名为your_table,字符串列是target_key,Map列是value_map(类型为map(varchar, double)),查询语句如下:

SELECT
  target_key,
  value_map,
  -- 直接提取匹配的数值,无匹配则返回NULL
  value_map[target_key] AS matched_value,
  -- 处理无匹配的情况,返回默认值0.0
  coalesce(value_map[target_key], 0.0) AS matched_value_with_default
FROM your_table;

关键说明

  • value_map[target_key]是核心语法,Presto会自动将字符串列的值作为键去Map中查找对应值
  • coalesce函数用于替换NULL结果,你可以根据需求修改默认值(比如换成NULL以外的其他数值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:17:01