我正在尝试对我的表执行特定查询到jsonb字段但是无法将最终输出作为int。 假设每行作为具有下面格式的JSONB字段,我想获得每个产品的订单总数。
{
"Product A": {
"orders": {"total": 2, "stuff": 3}
"..."
},
{
"Product B": {
"orders": {"total": 1, "stuff": 1}
"..."
},
{
"Product C": {
"orders": {"total": 5, "stuff": 0}
"..."
}
}
我已经完成了查询:
select key as product, value::json->'orders'->'total' as total
from table, jsonb_each_text(json_field)
group by key, value;
通过这个我能够获得总产品:
product | total
Product A | 10
Product B | 15
Product C | 0
然而,似乎总数是一个jsonb字段,我试图使用(value :: json->'orders' - >'total'):: numeric但是它表示无法进行强制转换。你能帮忙吗?
答案 0 :(得分:0)
我终于能够做到了:
转换为数字之前需要转换为文字,如:
(value::json->'orders'->'total')::text::numeric