0
で選択クエリと同じクエリ:私はのように、いくつかの「複雑」クエリに直面しているた結果
with q1 as (
select w.entity_id, p.actionable_group, p.error_type
from issue_analysis p
join log l on p.id = l.issue_analysis_id
join website w on l.website_id = w.id
where l.date >= '2016-06-01'
group by 1, 2, 3
),
q2 as (
select w.entity_id, p.actionable_group, p.error_type
from issue_analysis p
join log l on p.id = l.issue_analysis_id
join website w on l.website_id = w.id
where l.date >= '2016-06-01'
group by 1, 2, 3
having count(1) = 1
)
そして
SELECT q1.entity_id, count(q1.entity_id), count(q2.entity_id)
from q1, q2
group by 1
order by 1
にしようとしたが、結果は私のために、「間違っている」データを提供し、実際には両方のカウントが含まれていないためです...
ネストしたクエリを使用しないでこのような問題を解決する最もクリーンな方法を教えてください。
q2
はq1
と似ていますが、最後にhaving count(1) = 1
となります。
P.S. ドキュメントのリンクはうまくいくでしょう。答えは簡単です。
おそらく、結合が必要です。単純なルール:*常に*明示的な 'JOIN'構文を使用します。 *決して* FROM句でカンマを使用しないでください。 –
q1.entity_id = q2.entity_idでq1 left join q2を使用しようとしましたが、失敗します。 –