我在查询我的计数时遇到问题。我有一个查询,我试图查看为每个车型分配了多少人。
我希望像这样返回数据:
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]
答案 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
)。