列有一些负值和一些正值。需要在两个单独的列中找到负数的总和和正数的总和。
提前致谢。
答案 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;
由于