求出负数的总和和正数的总和

时间:2016-10-13 21:23:35

标签: sql oracle10g

列有一些负值和一些正值。需要在两个单独的列中找到负数的总和和正数的总和。

提前致谢。

3 个答案:

答案 0 :(得分:3)

你有什么尝试?听起来你只是想要

select sum(case when some_number < 0 then some_number else 0 end) sum_neg,
       sum(case when some_number > 0 then some_number else 0 end) sum_pos
  from your_table

但是,包含表格定义,示例数据和预期输出以及您已经尝试过的内容总是有帮助的。这将大大改善您可能获得的答案。

答案 1 :(得分:2)

只需使用case

select sum(case when val > 0 then val end) as pos_sum,
       sum(case when val < 0 then val end) as neg_sum
from t;

答案 2 :(得分:0)

当我执行你的查询时,它会给出如下错误: 第2行的错误: ORA-00932:不一致的数据类型:预期的CHAR有NUMBER

从我的逻辑查询应该是这样的:

select sum(case when val > 0 then val end) as pos_sum,
       sum(case when val < 0 then val end) as neg_sum
from t;

由于