sql - 在 SQL 中将 SQL 表转换为嵌套的 JSON
问题描述
我的雪花数据库中有这样的行:
+-----+-----+-----+
| Foo | Bar | Baz |
+-----+-----+-----+
| A | a | [] |
| A | b | [] |
| B | a | [] |
| B | b | [] |
+-----+-----+-----+
我想将其转换为:
"A": {
"a": [],
"b": []
},
"B": {
"a": [],
"b": []
}
解决方案
Snowflake 允许使用 SQL 达到预期的效果:
CREATE OR REPLACE TABLE t
AS
SELECT 'A' AS foo, 'a' AS bar, PARSE_JSON('[]') AS Baz
UNION ALL SELECT 'A' AS foo, 'b' AS bar, PARSE_JSON('[]') AS Baz
UNION ALL SELECT 'B' AS foo, 'a' AS bar, PARSE_JSON('[]') AS Baz
UNION ALL SELECT 'B' AS foo, 'b' AS bar, PARSE_JSON('[]') AS Baz;
SELECT OBJECT_AGG(foo, s) AS result
FROM (SELECT foo, OBJECT_AGG(bar, baz) AS s
FROM t
GROUP BY foo) sub;
输出:
{
"A": {
"a": [],
"b": []
},
"B": {
"a": [],
"b": []
}
}
推荐阅读
- c++ - OpenCV 从指针内存泄漏中恢复 Mat
- oauth - 如何确保在日历 api 的 oauth 屏幕中默认选中或取消选中权限?
- c++ - 如何更改结构中主函数中的变量?
- javascript - 如何避免在使用 FileReader 时发生 NotReadable
- pandas - 根据另一个数据框填充值
- reactjs - 如何使正交相机居中
- git - git 尝试克隆最后一个点的 repo 时出错
- vuetify.js - 在右侧垂直对齐 vuetify 选项卡
- java - 使用 Spring ConfigurationProperties 绑定到 Enum 和 List 属性的 Map
- xaml - 错误 MSB4095:如何在 Visual Studio 项目属性对话框中正确添加其他设置?