根据另一列中的值从一列中减去值(SQL)

Posted

技术标签:

【中文标题】根据另一列中的值从一列中减去值(SQL)【英文标题】:Subtract values from one column based on values in another (TSQL) 【发布时间】:2021-02-22 09:28:29 【问题描述】:

我有一个表格,我需要根据应用于另一列的条件减去一列中的值。例如,我想用代码fsttrd 减去值,意思是(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)的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark:如何根据另一列中的匹配值从数组中的第一次出现中选择直到最后的值

根据另一列的位置从一组列中返回值

Pandas 根据非恒定值的第三列将值从一列复制到另一列

如何根据另一列的值获取单行值?

根据另一列中的值比较一列中的两个值

在 pandas 中,如何根据一列中的唯一值创建列,然后根据另一列中的值填充它?