我有一張桌子。此表包括客戶和產品。示例資料在下面。
| 顧客姓名 | 產品 |
|---|---|
| 約翰 | 筆記本電腦 |
| 約翰 | 電話 |
| 約翰 | 筆記本電腦 |
| 凱文 | 筆記本電腦 |
| 凱文 | 筆記本電腦 |
| 凱文 | 筆記本電腦 |
我想選擇使用筆記本電腦選擇所有產品的客戶,所以在這種情況下,我想選擇凱文,因為他選擇了筆記本電腦作為他的所有產品。我不想選擇約翰,因為他選擇了筆記本電腦,但也選擇了電話,而不是約翰筆記本電腦的所有產品。
我怎樣才能在 tsql 中做到這一點?
uj5u.com熱心網友回復:
您可以在 have 子句中使用條件聚合
SELECT [Customer Name]
FROM YourTable t
GROUP BY [Customer Name]
HAVING COUNT(CASE WHEN Product <> 'laptop' THEN 1 END) = 0
-- alternatively
HAVING COUNT(CASE WHEN Product = 'laptop' THEN 1 END) = COUNT(*)
uj5u.com熱心網友回復:
SELECT Name
FROM Customers
WHERE (SELECT Name FROM Customers WHERE Product = 'telephone') != Name
GROUP BY NAME;
這應該對您有所幫助,它可能不是最終答案,但它足以讓您在某些邊緣情況下弄清楚
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/313281.html
上一篇:在重復檢查中將空記錄回傳為“0”
下一篇:分組平均值
