Athena中从JSON数组提取指定键值并合并为单列的方法
在Athena中合并提取JSON数组中的指定键值为单列
你可以结合TRANSFORM和COALESCE函数直接实现需求,无需拆分到多列再合并:
情况1:dateinfo列已为数组类型
如果你的dateinfo是Athena支持的数组类型(而非字符串格式的JSON),直接使用以下SQL:
SELECT TRANSFORM( dateinfo, x -> COALESCE(x.pickuprequesteddate, x.deliveryrequesteddate) ) AS requested_dates FROM your_table;
情况2:dateinfo列为字符串格式的JSON数组
如果dateinfo是存储为字符串的JSON数组,需要先用JSON_PARSE解析成数组:
SELECT TRANSFORM( JSON_PARSE(dateinfo), x -> COALESCE(x.pickuprequesteddate, x.deliveryrequesteddate) ) AS requested_dates FROM your_table;
逻辑说明
TRANSFORM遍历dateinfo数组中的每个对象元素COALESCE会依次检查元素中的pickuprequesteddate和deliveryrequesteddate:存在哪个就取对应的值,都不存在则返回null- 最终输出的单列会保留原数组的长度,每个位置对应原数组元素的目标键值(或
null)
内容的提问来源于stack exchange,提问作者Alejandra
相关产品推荐
相关产品推荐

