我的记录如下:
{
"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
?
答案 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');
祝你好运。