2013-03-25 134 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