我有一个表。该表包括客户和产品。示例数据如下:
客户名 | 产品 | 约翰 | 笔记本 | 约翰
---|---|
电话 | |
笔记本 | |
笔记本 | |
笔记本 | |
笔记本 |
可以在having子句中使用条件聚合
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(*)
SELECT Name
FROM Customers
WHERE (SELECT Name FROM Customers WHERE Product = 'telephone') != Name
GROUP BY NAME;
这应该对你有帮助,它可能不是最终的答案,但它应该足以让你在某些极端情况下找到答案