У меня есть следующие инструкции SQL:
Select SUM (amount) from accounts Where acctype = 0;
и
Select SUM (amount) from accounts Where acctype = 1;
Я хочу найти разницу между суммой в двух случаях в одном операторе SQL .
Можно использовать условное агрегирование:
select sum(case when acctype = 0 then amount when acctype = 1 then - amount end) as diff from accounts;
Это называется условным агрегированием:
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;