Postgresql json_each equivalent in Presto



我有使用JSON_EACH(X(从PostgreSQL中提取的数据,在数据库迁移之后,我正在寻找Presto中的JSON_EACH的等同,以将我的数据提取到多行中。原始格式就是这样{" 0":100.0," 57000":75.0," 47000":80.0}

预期输出将密钥和值分为2列的多行

有什么想法?

这可以通过将trino(以前为prestosql(JSON函数与UNNEST相结合来实现。步骤是:

  1. json_parse
  2. 将RAW JSON解析为JSON类型
  3. 从JSON到带有JSON Cast Expression
  4. 的地图
  5. 用SQL标准UNNEST表函数
  6. ,将地图解开为行

这是您的示例数据的查询:

WITH t AS (SELECT '{"0":100.0,"57000":75.0,"47000":80.0}' AS raw_json)
SELECT key, value
FROM
    t,
    UNNEST(
        CAST(json_parse(raw_json) AS map(integer, double))
    ) x(key, value)

供将来参考,此处介绍了所有功能:https://trino.io/docs/current/functions.html

相关内容

  • 没有找到相关文章