Задать вопрос
Light777
@Light777
Developer

Как вычислить сумму и разницу значений строк в Oracle?

Всем привет , есть таблица две колонки
id cost
1 500
2 100
3 300

Как можно сложить две первые строки и отнять третью?
чтобы было 500+100-300= 300
чтобы выходила одна клетка с ответом 300
  • Вопрос задан
  • 1837 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@a1go1ov
Scala fan, Java developer
with data as (
select 1 as id, 500 as cost from dual union all
select 2 as id, 100 as cost from dual union all
select 3 as id, 300 as cost from dual union all
select 4 as id, 200 as cost from dual union all
select 5 as id, 100 as cost from dual union all
select 6 as id, -800 as cost from dual
)

select batch, sum(cost) as total
form (
    select ceil(rownum/3) batch,
            ( case when rownum < max(rownum) over (partition by ceil(rownum/3)) then cost else -cost end ) as cost
    from data
    order by id
)
group by batch
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы