我可以在Postgresql中用select语句中的动态键对一个jsonb数组求和吗



我在postgres:中有一个jsonb对象

[{"a": 1, "b":5}, {"a":2, "c":3}]

我想得到每个唯一密钥的总和:

{"a":3, "b":5, "c":3}

关键是不可预测的。

有可能在Postgres中使用select语句来实现这一点吗?

查询:

SELECT key, SUM(value::INTEGER)
FROM (
SELECT (JSONB_EACH_TEXT(j)).*
FROM JSONB_ARRAY_ELEMENTS('[{"a": 1, "b":5}, {"a":2, "c":3}]') j
) j
GROUP BY key
ORDER BY key;

结果:

| key | sum |
| --- | --- |
| a   | 3   |
| b   | 5   |
| c   | 3   |

DB Fiddle

最新更新