【发布时间】:2020-05-20 16:46:44
【问题描述】:
`我正在尝试将子查询的值返回到 json_build_object 中,子查询返回正确的值,但是运行完整选择时结果不正确。值得注意的是,全选是视图的左连接。
SELECT r.id, sum(q.total) AS overall_total,
jsonb_agg(json_build_object('count', q.total, 'type', der.name)) AS totals
FROM test.table_a p
JOIN test.table_b r
ON p.root_id = r.id
inner join (
select r.id, de.value_id as error_type, count(de.value_id) as total
from test.table_c de
inner join tests.error dr on de.value_id = dr.id
inner join test.table_a p on de.process = p.id
inner join test.table_b r on p.root = r.id
group by r.id, de.value_id
) q on q.id = r.id
inner join test.table_c er on er.process = p.id
inner join tests.error der on er.value_id = der.id
GROUP BY r.id) er on er.id = rs.id
子查询返回 -
由于我试图根据 ID 计算 value_id 的出现次数,我相信我得到了正确的信息。
完整的查询结果和所需的输出 -
我想返回给定 ID 和 json 对象数组的总错误,每个对象内部是类型(value_id 文本表示)和该类型有多少的计数。
当前查询返回错误的overall_total,并且似乎复制了数组中的类型。我哪里做错了?
【问题讨论】:
标签: sql postgresql jsonb