2017-02-02 1 views
0

Я пытаюсь суммировать числа согласно их знаку в SQLite. Я могу написать две отдельные команды:Как суммировать числа в соответствии со своим знаком в SQLite?

SELECT sum(x) FROM table WHERE x >= 0; 
SELECT sum(x) FROM table WHERE x < 0; 

Есть ли способ объединить его в одну команду? Кажется, что две отдельные команды неэффективны (поскольку мы дважды проверяем условия).

+0

это должно быть 'х> = 0 ', а не' х => 0' – marmeladze

+1

@marmeladze Спасибо за указание. Я исправил это сейчас. –

ответ

2

Сделать условную сумму

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 
+0

о, вы уже ответили -)) – marmeladze

+0

Обычно вы можете ожидать ответа на переполнение стека за первые 5 минут. –

+0

Да, ты прав. – marmeladze