2013-03-25 132 views
0

我需要在查詢中有兩個聚合函數,但無法弄清楚如何過濾。查詢中的多個聚合函數

我需要的樣本數量和樣本比1

類似數量越多:

SELECT COUNT(Samples), COUNT(Samples >1) 
FROM SampleData 

我可以做一個子查詢,但有沒有更好的方式來過濾這個樣子?

回答

2

你可以基本上然後Sample的值使用CASE和它的結果是彙總通過SUM()

SELECT COUNT(Samples), 
     SUM(CASE WHEN Samples > 1 THEN 1 ELSE 0 END) 
FROM SampleData 

雖然這對大多數RDBMS都有效。

0

要獲取記錄數,請參閱JW的答案。類似地,爲了獲得總值樣本,和樣品,其中樣品> 1,可使用的總

SELECT SUM(Samples) TotalSamples, 
     SUM(CASE WHEN Samples > 1 THEN Samples ELSE 0 END) SamplesGT1 
FROM SampleData