【问题标题】:PostgreSQL - Convert rows into JSON key/value pairPostgreSQL - 将行转换为 JSON 键/值对
【发布时间】:2018-06-22 07:54:57
【问题描述】:

我有一个像这样的简单表格:

Key_1 | Key_2 |价值

行有多个 key_1 和 key_2 的组合。

我想将此表中的行放入 JSON 结构中,如下所示:

{
    "myJSON": {
        "key_1": {
            "key_2": value,
            "key_2": value
        }
        "key_1": {
            "key_2": value,
            "key_2": value
        }
}

我能够使用此查询将输出放入行中:

SELECT
    key_1,
    jsonb_object_agg(key_2,value)
FROM table
GROUP BY key_1
ORDER BY key_1;

这会产生如下输出:

key_1 | {"key_2":value, "key_2": value}
key_1 | {"key_2":value, "key_2": value}

但是,我无法完成最后一步,将这些返回的行放入 JSON 对象结构中,如上所述。我不能使用另一个聚合函数,因为它抱怨嵌套。

有什么办法可以做到吗,还是我必须与数据库外部的结果集有关?

【问题讨论】:

    标签: json postgresql-9.4


    【解决方案1】:

    这就是我想要的:

    WITH t AS (
      SELECT
          key_1,
          jsonb_object_agg(key_2,value) key_pair
      FROM table
      GROUP BY key_1
      ORDER BY key_1
    )
    SELECT jsonb_object_agg(key_1, key_pair)
    FROM t
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 1970-01-01
      • 2021-10-30
      • 2019-05-24
      • 1970-01-01
      • 2022-07-07
      • 1970-01-01
      相关资源
      最近更新 更多