SQL Server不同的问题

时间:2015-07-01 13:54:37

标签: sql sql-server count

我在查询我的计数时遇到问题。我有一个查询,我试图查看为每个车型分配了多少人。

我希望像这样返回数据:

Car Model     People

Accord        5
Malibu        6
Model S       4

现在我通过我的查询得到了这个:

Car Model     People

Accord        15
Malibu        15
Model S       15

总共有15个人,我得到的是回报,而不是每个模型的明显计数..我将在下面发布查询:

  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]

1 个答案:

答案 0 :(得分:3)

您有left join并且正在计算第一个表。你想从第二个算起:

  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]

但是,您正在通过 second 表中的模型名称进行聚合,因为它可以是NULL,这是非常可疑的。您可能只想在第一个查询中使用RIGHT JOIN(实际上,我会反转表并仍然使用LEFT JOIN)。