如何在SQLite中根据数字的符号求和?

如何在SQLite中根据数字的符号求和?,sqlite,Sqlite,我正试图根据SQLite中的数字符号求和。我可以编写两个单独的命令: SELECT sum(x) FROM table WHERE x >= 0; SELECT sum(x) FROM table WHERE x < 0; 从x>=0的表格中选择总和(x); 从x0时,则x为0结束)作为正数, 作为负数求和(当x0时,则x为0结束)作为正数, 作为负数求和(当x=0而不是x=>0@marmeladze谢谢你指出。我现在已经更正了。这应该是x>=0而不是x=>0@marmeladze

我正试图根据SQLite中的数字符号求和。我可以编写两个单独的命令:

SELECT sum(x) FROM table WHERE x >= 0;
SELECT sum(x) FROM table WHERE x < 0;
从x>=0的表格中选择总和(x);
从x<0的表格中选择总和(x);
有没有办法把它合并成一个命令?两个单独的命令似乎效率低下(因为我们两次检查条件)。

进行条件求和

SELECT sum(case when x > 0 then x else 0 end) as positives,
       sum(case when x < 0 then x else 0 end) as negatives
FROM your_table
选择sum(当x>0时,则x为0结束)作为正数,
作为负数求和(当x<0时,则为x,否则为0结束)
从你的桌子上
进行条件求和

SELECT sum(case when x > 0 then x else 0 end) as positives,
       sum(case when x < 0 then x else 0 end) as negatives
FROM your_table
选择sum(当x>0时,则x为0结束)作为正数,
作为负数求和(当x<0时,则为x,否则为0结束)
从你的桌子上

这应该是
x>=0
而不是
x=>0
@marmeladze谢谢你指出。我现在已经更正了。这应该是
x>=0
而不是
x=>0
@marmeladze谢谢你指出。我现在已经更正了。通常情况下,您可以在前5分钟得到有关堆栈溢出的答案。通常情况下,您可以在前5分钟得到有关堆栈溢出的答案。