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,但它也失敗了。 –