我无法获得购买了商品A和B的客户数量。以下是我正在使用的数据示例。

Customer No | Item
___________________
 1            A
 1            B
 2            B
 3            A
 4            A
 4            B
 5            B
 6            A

我正在尝试统计购买了项目A和B的客户数量。这是我到目前为止所尝试的。我得到以下结果项目A = 5,项目B = 3以及项目A和B = 6。
Select
count (distinct case when ItemNo = 'A' then customerNo end) as [A],
count (distinct case when ItemNo = 'B' then customerNo end) as [B],
count (distinct case when (ItemNo = 'A' or ItemNo = 'B') then customerNo end) as [AandB]
from Items

这是我想要得到的结果:
Item | Count
A             4
B             4
A and B       2

有人可以指出我正确的方向以获得此结果。谢谢!

最佳答案

我认为您的预期结果可能是A = 4B = 4

您可以尝试使用UNION ALL来获取ABA & B数量。

SELECT ItemNo,COUNT(distinct customerNo) Count
FROM Items
GROUP BY ItemNo
UNION ALL
SELECT 'A and B',count(*)
FROM (
    SELECT COUNT(DISTINCT ItemNo) cnt
    FROM Items tt
    WHERE ItemNo IN ('A','B')
    GROUP BY [CustomerNo]
    HAVING COUNT(DISTINCT ItemNo) = 2
) t1

10-08 12:35