2017-10-04 108 views
0

我有一個查詢,將「總計」列中的所有值相加並將它們對齊到它們的商店名稱,年份,品牌和型號的唯一組合(通過一個Group By):SQL計數多行出現次數不同,按多行不同

select storename, year, make, model, sum(total) as [Sum] 
    from #TempTable 
    group by storename, year, make, model 

的結果的一個例子:

StoreA 2009 TOYO AVALON 1039.95 
    StoreB 2005 CHET TAHOE 1039.99 
    StoreC 2010 MAZD CX-9 1040.07 
    StoreD 2007 DODG CHARGER 1040.09 
    StoreE 2003 ACUT MDX  1040.17 

我想要做的就是將另一列添加到該查詢計數如何在各組中存在多行。例如,我知道在StoreA有一個2009 TOYO AVALON的5個實例,但我希望腳本能夠計算出商店名稱,年份,品牌,型號的每個獨特組合的數量。我希望它顯示爲[Sum]右側的額外列[CarCount]。

必須有辦法,但我一直沒能找到解決辦法。感謝您的幫助!

回答

0

添加COUNT(*)的查詢,將計算該組

select storename, year, make, model, sum(total) as [Sum], count(*) carcount 
    from #TempTable 
    group by storename, year, make, model 
+1

瓦利,謝謝你的回答。這正是我需要的。 –

0

除非我誤解,否則您需要對現有分組進行計數。只需使用COUNT就可以了。

select storename, year, make, model, sum(total) as [Sum], COUNT(1) as CarCount 
    from #TempTable 
    group by storename, year, make, model 
+0

AB_87中實例的數量,感謝您的回答!它與上面Valli提出的非常相似。我跑了兩個查詢,他們產生相同的結果,所以我想知道count(*)和count(1)之間的區別是什麼? –

+0

@JordanMcDonald當我提交我的時候沒有答案。我們幾乎在同一時間提交。它發生了。 「COUNT(1)」和「COUNT(*)」有很多問題。以下是最常見問題之一的鏈接。 https://stackoverflow.com/questions/1221559/count-vs-count1 –