首页 > 解决方案 > Athena - 将 json 提取到行

问题描述

我在 AWS Athena 中处理 json 有问题

我需要做以下转换:

在此处输入图像描述

我尝试使用 JSON_extract,但我需要输入元素编号,即。[0] 或其他数字

有任何想法吗?

标签: sqljsonamazon-athena

解决方案


您可以将其转换为行数组并使用UNNEST

WITH dataset AS (
    SELECT * FROM (VALUES   
       ('a', JSON '[{"id":1, "category": "test"},{"id":2, "category": "test2"}]')
 ) AS t (xxx, json_string))


SELECT xxx, row.id, row.category
FROM dataset
CROSS JOIN UNNEST(CAST(json_string as ARRAY(ROW (id INTEGER, category VARCHAR)))) as tmp(row)

输出:

xxx ID 类别
一种 1 测试
一种 2 测试2

推荐阅读