【问题标题】:How to get the SUM of values on a JSONB column如何获取 JSONB 列上的值的总和
【发布时间】:2016-12-30 09:01:49
【问题描述】:

我在 postgresql 上有一个一维 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)

【问题讨论】:

    标签: postgresql jsonb


    【解决方案1】:

    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);
    

    【讨论】:

      猜你喜欢
      • 2019-01-23
      • 2020-08-30
      • 2013-09-20
      • 2022-07-12
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多