0
由于某些原因,以下查询永远不会结束。但是,如果我删除from
子句中的最后一个子查询,它将在500毫秒内运行将子查询添加到子句时永不结束查询
有关为什么?
select
new.app_id,
'support' as domain,
'summary' as type,
90 as interval,
json_build_object(
'new', count(new),
'closed', count(closed),
) as data
from (
SELECT * from conversations c
WHERE c.inserted_at::date > (current_date - (90 || ' days')::interval)::date
) as new,
(
SELECT * from conversations c
WHERE c.inserted_at::date > (current_date - (90 || ' days')::interval)::date
) as closed
group by new.app_id
在select中使用json_build_object需要很多的cpu时间。我建议使用最后一个子查询和没有子查询来检查计数行,可能在子查询查询中返回太多行 –
我看不到你加入表的位置。你只是放置它们,但没有它们之间的连接。新建和关闭如何相互关联?也许我们可以帮助你更多,如果你说出你想要的并向我们展示一些数据示例。 – Christian
很多问题在这里......你有两个相同的子查询;你可以用“with”子句使它们成为一个。也就是说,在任何情况下都不能保证子查询 - 也许只是在主查询中直接调用它们?剥离洋葱,你想做什么?如果你使用ID加入表本身,大概你会得到完全相同的数据,再乘以行数。你有样品输入和预期输出吗? – Hambone