我有以下结构和查询:
SELECT jsonb_path_query_array(jsonb '{"subscores": {"score_a": 2, "score_b": 3, "score_c": 4}}','$.subscores.* ? (@>2)');
返回:
[3,4]
或
SELECT jsonb_path_query(jsonb '{"subscores": {"score_a": 2, "score_b": 3, "score_c": 4}}','$.subscores.* ? (@>2)');
返回(作为行):
3
4
有没有办法构造我的查询以将对象子集作为单行、单字段值?IE:
{"score_b": 3, "score_c": 4}
给定一组动态分数,即。有些行会有score_d, ...
,等等
我认为您需要取消嵌套所有元素并将它们聚合回来: