我有一个表随机数字 - 例如(1,2,4,6,8,10)。 是否可以在一个查询中选择低于5的数字之和以及高于5的数字之和?
类似的东西:
SELECT sum(numbers_below_five), sum(numbers_above_five) from numbers
如果可能,那么这样做是否有意义,或者两个查询会更快?
答案 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需要网络往返,单个查询应该比两个查询更快。