使用 HAVING 檢查組中的多個條件
訂單表
顧客 ID | 產品編號 | 數量 | 價錢 |
---|---|---|---|
1 |
2 | 五 | 100 |
1 |
3 | 2 | 200 |
1 |
4 | 1 | 500 |
2 |
1 | 4 | 50 |
3 |
五 | 6 | 700 |
要檢查訂購了產品 ID 2 和產品 ID 3 的客戶,可以使用 HAVING
select customerId
from orders
where productID in (2,3)
group by customerId
having count(distinct productID) = 2
返回值:
顧客 ID |
---|
1 |
查詢僅選擇帶有產品 ID 的記錄,並使用 HAVING 子句檢查具有 2 個 productId 的組,而不只是一個。
另一種可能性是
select customerId
from orders
group by customerId
having sum(case when productID = 2 then 1 else 0 end) > 0
and sum(case when productID = 3 then 1 else 0 end) > 0
此查詢僅選擇具有至少一個具有 productID 2 的記錄且至少一個具有 productID 3 的組。