求负数之和和正数之和
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;
谢谢
一列有一些负值和一些正值。要求在两个单独的列中找到负数的总和和正数的总和。
提前致谢。
只需使用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;
谢谢