我在postgresql上有一个一维的JSONB,如下所示:
SELECT '{"a": 1, "b": 2, "c": 3}'::jsonb;
如何在JSONB列上获取值的SUM? 喜欢1 + 2 + 3的总和?
PostgreSQL具有jsonb_object_keys功能,但我正在寻找类似" jsonb_object_values" (我知道此功能不存在)
# select jsonb_object_keys( '{"a": 1, "b": 2, "c": 3}'::jsonb );
jsonb_object_keys
-------------------
a
b
c
(3 rows)
答案 0 :(得分:3)
jsonb_each_text()
函数将一组JSON对象扩展为(key, value)
格式的行。由于它返回一组行,因此您应将其用作行源。由于它以text
格式返回数据,因此您应该在进一步处理之前将其转换为适当的类型。
SELECT sum(v::integer)
FROM jsonb_each_text('{"a": 1, "b": 2, "c": 3}'::jsonb) j(k,v);