我有以下客户表:
CustomerID, ReferenceID
1 ,101
2 ,101
3 ,101
4 ,102
5 ,102
6 ,103
我想计算有多少ReferenceID有多个customerID,我写了以下查询:
SELECT CustomerID, ReferenceID, Count(1)
FROM Customer
group by CustomerID, ReferenceID
having Count(1) >1
我应该得到数字2因为2 ReferenceID有多个customerID,但我没有得到任何数字
答案 0 :(得分:1)
DECLARE @ReferenceIdCount INT
SELECT @ReferenceIdCount = COUNT(*)
FROM
(
SELECT
ReferenceId
,COUNT(DISTINCT CustomerId) as ReferenceCount
FROM
@Table
GROUP BY
ReferenceId
HAVING
COUNT(DISTINCT CustomerId) > 1
) t
首先,您必须找到具有多个CustomerIds的ReferenceId,然后您必须计算它们。所以你可以通过多种方式实现这一目标,但嵌套选择是一种向您展示的简单方法。
答案 1 :(得分:0)
我可以将此号码设为变量吗?
宣布@RFCount
设置@RFCount =(
SELECT COUNT(*) 从 ( 选择 ReferenceId ,COUNT(DISTINCT CustomerId)作为ReferenceCount 从 @表 通过...分组 ReferenceId HAVING COUNT(DISTINCT CustomerId)> 1 )t)
打印@FCount
我收到上述声明的错误消息