获取Postgres NOSQL json数据中json数组的总和

如何从postgres json select中的“refunds”数组中获取聚合SUM(金额)
以下是我的数据架构和结构:

表名:交易

列名:数据

{
  "id": "tran_6ac25129951962e99f28fa488993","amount": 1200,"origin_amount": 3900,"status": "partial_refunded","description": "Subscription#sub_a67d59efb2bcbf73485a ","livemode": false,"refunds": [
    {
      "id": "refund_ee4192ffb6d2caa490a1","status": "refunded","created_at": 1426412340,"updated_at": 1426412340,},{
      "id": "refund_0e4a34e4ee7281d369df","amount": 1500,"created_at": 1426412353,"updated_at": 1426412353,}
  ]
}

输出应该是:1200 1500 = 2700

Output
|---------
|total
|---------
|2700

请提供全局解决方案,而不是静态数据

解决方法

这应该适用于9.3

WITH x AS( SELECT
'{
  "id": "tran_6ac25129951962e99f28fa488993","updated_at": 1426412340
    },"updated_at": 1426412353
    }
  ]
}'::json as y),refunds AS(
SELECT json_array_elements(y->'refunds') as j FROM x)
SELECT sum((j->>'amount')::int) FROM refunds;

相关文章

文章浏览阅读752次。关系型数据库关系型数据库是一个结构化的...
文章浏览阅读687次,点赞2次,收藏5次。商城系统中,抢购和秒...
文章浏览阅读1.4k次。MongoTemplate开发spring-data-mongodb...
文章浏览阅读887次,点赞10次,收藏19次。1.背景介绍1. 背景...
文章浏览阅读819次。MongoDB连接失败记录_edentialmechanisn...
文章浏览阅读470次。mongodb抽取数据到ES,使用ELK内部插件无...