如何获得值的总和上JSONB列
问题描述:
我有PostgreSQL的1维JSONB这样的:如何获得值的总和上JSONB列
SELECT '{"a": 1, "b": 2, "c": 3}'::jsonb;
如何获得值的总和上JSONB列? 像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)
答
的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);