postgresql - Postgresql json_each equivalent in Presto
问题描述
I have data which I used to extract from Postgresql using json_each(x), I am looking for an equivalent of json_each in Presto after a database migration to extract my data into multiple rows. The original format is as such {"0":100.0,"57000":75.0,"47000":80.0}
Expected Output to separate key and values into 2 columns of multiple rows
Any idea?
解决方案
这可以通过将Trino(以前称为 PrestoSQL)JSON 函数与UNNEST
. 步骤是:
- 将原始 JSON 解析为 JSON 类型
json_parse
- 使用 JSON 转换表达式从 JSON 转换为地图
- 使用 SQL 标准
UNNEST
表函数将地图取消嵌套到行中
这是您的示例数据的查询:
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
推荐阅读
- c# - c# oracle: 在插入后获取 RowId
- python - 即使消费者工作,Python Kafka 客户端也会触发错误
- php - get_the_id() 不返回帖子的 ID
- php - Visual Composer - 覆盖类
- jspdf - jsPDF咨询外部服务器创建PDF或PDF仅在客户端创建?
- java - Lucene:点后通配符与数字不匹配
- azure - Microsoft 认知服务 Face-API 和 GDPR
- python - 导出所有气流变量
- error-handling - OCaml 用户定义类型和函数返回错误
- sapui5 - 如何使用 handleExpandChartChange 事件来监控 SAPUI5 甘特图中的扩展行?