不重复计数 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)。