Возвращает итоги поля - сгруппированы по условию? - PullRequest
0 голосов
/ 31 мая 2018

Допустим, у меня есть следующий оператор SQL ...

SELECT amount FROM exampleTable

Довольно просто, он дает мне каждую строку (только поле суммы) из таблицы примера ... но я вроде хочучто-то немного другое ...

Вместо того, чтобы возвращать все строки, я бы по существу хотел два ряда.То, что я хочу, это общая сумма «сумма», где значение было положительным, а также сумма, где оно было отрицательным.Я также хотел бы вернуть счет для каждого.

Это выполнимо?Если да, может кто-нибудь показать мне пример того, как я могу это сделать?

До того, как придут ответы "google it" ... Я очень плохо знаком с SQL - и я смотрю на GROUP BY,сумма и т. д. - и я вполне уверен, что они мне нужны - но, честно говоря, я не сделал это на самом деле работает - если кто-то может показать мне, как я мог бы заставить это работать - тогда я мог бы на самом деле чему-то научиться!

1 Ответ

0 голосов
/ 31 мая 2018

Использование условное агрегация

SELECT sum(case when amount < 0 then amount else 0 end) negtotal,  
       sum(case when amount > 0 then amount else 0 end) postotal,
       sum(case when amount < 0 then 1 else 0 end) negcount,  
       sum(case when amount > 0 then 1 else 0 end) poscount
FROM exampleTable;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...