求负数之和和正数之和

Find the sum of negative numbers and the sum of the positive numbers

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

提前致谢。

只需使用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;

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

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

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

当我执行您的查询时,出现如下错误: 第 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;

谢谢