2016-08-19 4 views
0

何らかの理由により、次のクエリが終了しません。しかし、from節の最後のサブクエリを削除すると、500msで実行されます。from-clauseにサブクエリを追加するときにクエリを終了しません

なぜですか?

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

json_build_objectを使用するには、多くのCPU時間が必要です。最後のサブクエリとサブクエリなしのチェック・カウント行を推奨します。サブクエリ・クエリーで多すぎる行を返す可能性があります。 –

+0

テーブルを結合した場所がわかりません。あなたはそれらを置いただけですが、それらの間の結合はありません。新旧の関係はどのように関係していますか?おそらく、あなたが望むものを言うならば、私たちはあなたをもっと助けることができ、いくつかのデータの例を示します。 – Christian

+0

ここではたくさんの質問があります。同じサブクエリが2つあります。あなたは "with"句でそれらを作ることができます。つまり、サブクエリを保証するものではなく、メインクエリで直接呼び出すことはできません。タマネギを剥がして、何をしようとしていますか? IDを使用してテーブル自体を結合すると、まったく同じデータに行数を乗じたものになります。サンプル入力と期待される出力がありますか? – Hambone

答えて

1

あなたは2つのテーブルを一緒に結合していないため、非常に長い時間実行されている可能性があります。基本的には、両方のテーブル間のすべてのコンボを、現在実行している方法で実行しています。

自分の時間を節約するために、ある種のJOIN ONを持つfromの2つのサブクエリに参加する必要があります。

new.App_id = closed.app_idに参加する可能性がありますか?

関連する問題