2015-07-01 45 views
0

我有一個問題在我的查詢中獲取計數。我有一個查詢,我試圖看看有多少人分配給每個車型。用不同的計數SQL Server的問題

我想數據,像這樣將返回:

Car Model  People 

Accord  15 
Malibu  15 
Model S  15 

總共有15人:

Car Model  People 

Accord  5 
Malibu  6 
Model S  4 

現在我有,我有查詢得到這個我得到的是回報,而不是每個模型不同的計數..我會發布查詢如下:

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

你可以發佈2表中的數據? – HoneyBadger

+0

你可以發佈表結構嗎? – Lamak

回答

3

你h ave a 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] 

然而,這是很懷疑你是型號名稱在表彙總,因爲它可以NULL。您可能也只想在您的第一個查詢中使用RIGHT JOIN(實際上,我會顛倒這些表並仍然使用LEFT JOIN)。

+0

哇,我是一個白癡,謝謝 – codeBoy

+0

我必須要失去一些東西,但即使op從第一張桌子開始計數,除非他/她正在使用'CROSS JOIN' s /他不應該得到張貼的結果 – Lamak

+0

@Lamak。 。 。好的觀察。我想不出一種方法來安排數據來獲得問題的結果。我懷疑OP的查詢中缺少某些東西。 –