由于某种原因,以下查询永远不会结束。但是,如果我删除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
答案 0 :(得分:1)
您没有将两张桌子连在一起,这可能导致它运行了很长时间。它基本上是按照你当前运行它的方式在两个表之间进行每个组合。
你需要加入from中的两个subquerys并使用某种JOIN ON来节省你自己的时间。
可能加入new.App_id = closed.app_id?