如何解决使用 UNION 从同一个表中减去 2 个值
我希望我能在这里得到一些帮助,因为我想不出别的了。
所以我有 2 个结果来自同一个表,我想在一个查询中看到这些结果……所以我使用了 UNION,直到那里都很好,现在我需要这两个结果之间的差异。假设我有下一个结果:
measure 30_days
old_purchases 342
new_purchases 54
我需要一个新行来区分这两者之间的区别,例如:
measure 30_days
old_purchases 342
new_purchases 54
difference 288
解决方法
您可以使用条件聚合:
select measure,value
from t
union all
select 'difference',sum(case when measure = 'old_purchases' then value
when measure = 'new_purchases' then - value
else 0
end)
from t;
如果您确实想将其添加到表中,请使用 insert
:
insert into t (measure,value)
select 'difference',sum(case when measure = 'old_purchases' then value
when measure = 'new_purchases' then - value
else 0
end)
from t;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。