gpt4 book ai didi

sql - 在 postgresql 中选择查询 >= jsonb 列值

转载 作者:行者123 更新时间:2023-11-29 14:31:21 24 4
gpt4 key购买 nike

我有一个 postgres 数据库,表中有 jsonb 格式列 tags。我正在尝试查询 confidence >= 50 的行。

我不确定如何索引到预测列表以检查置信度。我试过下面的查询,它执行时没有错误,但不返回任何行。

select * from mytable where (tags->>'confidence')::int >= 50;

这是一个示例行 jsonb

{
"predictions": [
{
"label": "Shopping",
"confidence": 91
},
{
"label": "Entertainment",
"confidence": 4
},
{
"label": "Events",
"confidence": 2
}
]
}

最佳答案

您需要通过取消嵌套数组来规范化数据,然后您可以

select p.d
from mytable mt
cross join lateral jsonb_array_elements(mt.tags -> 'predictions') as p(d)
where (p.d ->> 'confidence')::int >= 50;

对于上面的示例数据,返回:

{"label": "Shopping", "confidence": 91}

在线示例:http://rextester.com/CBIAR76462

关于sql - 在 postgresql 中选择查询 >= jsonb 列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51333468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com