/ / Em uma única coluna: Operação algébrica em funções agregadas - sql, oracle11g

Em uma única coluna: operação algébrica em funções de agregação - sql, oracle11g

É possível na mesma consulta SQL Select (nenhuma função / procedimento nem PL / SQL) calcular uma operação algébrica em duas funções agregadas?

|  id ||  A  |
|-----||-----|
|  1  || 10  |
|  2  || 20  |
|  3  || 30  |
|  4  || 40  |


SELECT (SELECT SUM(A) FROM Table Where "id is even") - (SELECT SUM(A) FROM Table Where "id is odd")
FROM TABLE
WHERE "condition"

Qualquer ideia ?

ps: Meu banco de dados é Oracle 11g

Respostas:

4 para resposta № 1

Você pode fazer assim:

select sum(case when mod(id,2)=0 then A else 0 end) -
sum(case when mod(id,2)=0 then 0 else a end)
from test
where yourCondition

O SQLFiddle é uma amostra do MySQL, já que o Oracle também possui mod função deve funcionar como está.

Veja aqui trabalhando aqui: http://sqlfiddle.com/#!9/1ba756/2