不重复计数 SQL 服务器的问题
Issue With Distinct Count SQL Server
我在获取我的查询中的计数时遇到问题。我有一个查询,想查看每个车型分配了多少人。
我希望数据像这样 returned :
Car Model People
Accord 5
Malibu 6
Model S 4
现在我正在通过我的查询得到这个:
Car Model People
Accord 15
Malibu 15
Model S 15
总共有 15 个人,我得到的是 return,而不是每个模型的不同计数。我将 post 在下面查询:
SELECT b.[ModelName], COUNT(DISTINCT a.[CustomerID])
FROM firstTable a
left join secondTable b on b.[ModelID] = a.[ModelID]
WHERE [Country] = 'US'
GROUP BY b.[ModelName]
您有一个 left join
并且从 第一个 table 开始计算。你想从秒开始数:
SELECT b.[ModelName], COUNT(DISTINCT b.[ModelId])
FROM firstTable a LEFT JOIN
secondTable b
on b.[ModelID] = a.[ModelID]
WHERE [Country] = 'US'
GROUP BY b.[ModelName]
但是,您在secondtable中按模型名称聚合是很可疑的,因为它可以是NULL
。您可能还只想在第一个查询中使用 RIGHT JOIN
(实际上,我会反转 table 并仍然使用 LEFT JOIN
)。
我在获取我的查询中的计数时遇到问题。我有一个查询,想查看每个车型分配了多少人。
我希望数据像这样 returned :
Car Model People
Accord 5
Malibu 6
Model S 4
现在我正在通过我的查询得到这个:
Car Model People
Accord 15
Malibu 15
Model S 15
总共有 15 个人,我得到的是 return,而不是每个模型的不同计数。我将 post 在下面查询:
SELECT b.[ModelName], COUNT(DISTINCT a.[CustomerID])
FROM firstTable a
left join secondTable b on b.[ModelID] = a.[ModelID]
WHERE [Country] = 'US'
GROUP BY b.[ModelName]
您有一个 left join
并且从 第一个 table 开始计算。你想从秒开始数:
SELECT b.[ModelName], COUNT(DISTINCT b.[ModelId])
FROM firstTable a LEFT JOIN
secondTable b
on b.[ModelID] = a.[ModelID]
WHERE [Country] = 'US'
GROUP BY b.[ModelName]
但是,您在secondtable中按模型名称聚合是很可疑的,因为它可以是NULL
。您可能还只想在第一个查询中使用 RIGHT JOIN
(实际上,我会反转 table 并仍然使用 LEFT JOIN
)。