根据另一列中的值从一列中减去值(SQL)
Posted
技术标签:
【中文标题】根据另一列中的值从一列中减去值(SQL)【英文标题】:Subtract values from one column based on values in another (TSQL) 【发布时间】:2021-02-22 09:28:29 【问题描述】:我有一个表格,我需要根据应用于另一列的条件减去一列中的值。例如,我想用代码fst
和trd
减去值,意思是(12 - 23)
。
我不想声明单独的变量。是否可以通过查询来做到这一点?
【问题讨论】:
【参考方案1】:一种方法是条件聚合:
select sum(case when code = 'fst' then value else - value end)
from t
where code in ('fst', 'trd');
假设每个代码只有一行,您也可以使用join
:
select tf.value - tt.value
from t tf join
t tt
on tf.code = 'fst' and tt.code = 'trd'
【讨论】:
你说这是一种方法。你能提供替代品吗?谢谢。 如果我想划分这些相同的值怎么办?我用你在答案中给出的第二个选项做到了。我不确定这是不是最佳决定 @Yana 。 . .那么你会有一个不同的问题。 . .但你可以使用:sum(case when code = 'fst' then value end) / sum(case when value = 'trd' then value end)
.以上是关于根据另一列中的值从一列中减去值(SQL)的主要内容,如果未能解决你的问题,请参考以下文章