Как суммировать поле два раза с двумя условиями в одном SQL выражениях - PullRequest
0 голосов
/ 20 июня 2020

У меня есть следующие инструкции SQL:

Select SUM (amount) from accounts Where acctype = 0;

и

Select SUM (amount) from accounts Where acctype = 1;

Я хочу найти разницу между суммой в двух случаях в одном операторе SQL .

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Можно использовать условное агрегирование:

select sum(case when acctype = 0 then amount
                when acctype = 1 then - amount
           end) as diff
from accounts;
1 голос
/ 20 июня 2020

Это называется условным агрегированием:

SELECT
  SUM(case when acctype = 0 then amount else 0 end) AS sum0,
  SUM(case when acctype = 1 then amount else 0 end) AS sum1,
  SUM(case when acctype = 0 then amount else 0 end) -
  SUM(case when acctype = 1 then amount else 0 end) AS diff
FROM accounts;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...