Предполагая, что у вас есть атрибут 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
за Column1
, однако в строке, имеющей rownum = 2
, значение Column2
отрицается. Поэтому в нашем примере вы получите 100 + (-200) = -100