使用相同的查询选择上限和下限的值?

时间:2014-05-08 15:46:04

标签: sql

我有一个表随机数字 - 例如(1,2,4,6,8,10)。 是否可以在一个查询中选择低于5的数字之和以及高于5的数字之和?

类似的东西:

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

如果可能,那么这样做是否有意义,或者两个查询会更快?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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需要网络往返,单个查询应该比两个查询更快。