2014-05-08 29 views
1

我有一個表女巫擁有隨機數字 - 例如(1,2,4,6,8,10)。 是否可以在一個查詢中選擇低於5的數字和高於5的數字之和?使用相同的查詢選擇高於和低於限制的值?

喜歡的東西:

SELECT sum(numbers_below_five), sum(numbers_above_five) from numbers 

如果可能的話則是有一點這樣做或將兩個查詢速度更快?

回答

2

您可以使用case語句是:

SELECT 
    SUM (CASE WHEN n > 5 THEN n ELSE 0 END) as SumGreaterThanFive, 
    SUM (CASE WHEN n <= 5 THEN n ELSE 0 END) as SumLessThanFive 
FROM myTable 

假設訪問您的RDBMS需要一個網絡往返,一個查詢應該比兩個查詢更快。

2
SELECT sum(case when num_column < 5 then num_column end) as numbers_below_five, 
     sum(case when num_column > 5 then num_column end) as numbers_above_five 
from numbers