У меня есть ситуация, как показано ниже (упрощенный запрос):
select split_part(field1,'_',1) as order_sign
, odp.dr_id
, sum(odp.use_count) as usecount
, cost
from table1
inner join table2 odp on .. = odp.dr_id
inner join .. = ..
...
where
condition1 AND condition2 AND ..
AND (split_part(field1,'_',1) in ('in', 'out'))
group by split_part(field1,'_',1), odp.dr_id, cost
order by odp.dr_id
У меня есть результат как:
"in" ;8;1;70
"in" ;24;2;70
"out" ;27;1;70
"in" ;32;3;70
"in" ;38;2;70
"out" ;44;1;70
"in" ;52;3;70
"out" ;57;1;70
"in" ;58;1;70
"in" ;79;1;70
"out" ;79;2;70
"out" ;96;2;70
"out" ;114;1;70
"out" ;117;1;70
"out" ;124;2;70
"out" ;228;1;70
Как я могу использовать "в" как "знак минус", "out" как "знак плюс", чтобы получить результат как:
8 ; -1 ;70)
24 ; -2 ;70)
27 ; 1 ;70)
...
79 ; (-1+2); 70
...
228 ; 1; 70
Используя postgresql?Я хочу получить результат, используя только SQL.