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