我的数据如下,它在一个表中
Column1 Column2
abc 100
abc 200
现在我需要像下面这样
abc 100 //here 200-100
我正在思考如何实现这一目标。
我尝试使用 row_number 然后使用 case 语句减去
Select
column1,
sum(
case when rownum=1
then column2
end
-
case when rownum=2
then column2
end
)
from table
group by column1
但这给了我空值。
假设你有一个属性rownum
在table
这始终是1或2(它可以通过一些ROW_NUMBER()的同时在问题提出来产生,根据适合于你任何顺序)
Column1 Column2 Rownum
------------------------
abc 100 1
abc 200 2
那么你可以简单地使用
Select
column1,
sum(
case when rownum=1
then column2
else -column2
end
)
from table
group by column1
它执行Column2
per的总和Column1
,但是,在具有rownum = 2
该Column2
值的行中被否定。因此,在我们的示例中,您最终得到 100 + (-200) = -100
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句