PostgreSQL:JSON嵌套元素的SUM?

时间:2016-06-17 02:34:24

标签: sql json postgresql

我的记录如下:

{
  "id": 93824701,
  "lines": [
    {"number": 1, "unit_price": 9.77},
    {"number": 2, "unit_price": 8.36}
  ]
}

来自查询:

select * from sales where sale @> '{"id": 93824701}'::jsonb;

如何计算所有unit_prices元素的总和(在SQL中),以便结果为18.13

1 个答案:

答案 0 :(得分:0)

JSON不是SQL的一部分,PostgreSQL只为它提供了一些美味的奖励。将结构化数据存储在普通表而不是JSON结构中,可以避免将来出现许多问题。

回答这个问题,希望这个小例子有所帮助:

select sum((value->'unit_price')::text::numeric) from jsonb_array_elements('{
  "id": 93824701,
  "lines": [
    {"number": 1, "unit_price": 9.77},
    {"number": 2, "unit_price": 8.36}
  ]
}'::jsonb->'lines');
祝你好运。