/ / In einer einzelnen Spalte: Algebraische Operation für Aggregatfunktionen - sql, oracle11g

In einer einzigen Spalte: Algebraische Operation für Aggregatfunktionen - sql, oracle11g

Ist es in der gleichen SQL Select Query (keine Funktion / Prozedur oder PL / SQL) möglich, eine algebraische Operation für zwei Aggregatfunktionen zu berechnen?

|  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"

Irgendeine Idee ?

ps: Meine Datenbank ist Oracle 11g

Antworten:

4 für die Antwort № 1

Sie können es so machen:

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

Das SQLFiddle ist ein MySql-Beispiel, da Oracle dies ebenfalls hat mod Funktion sollte es funktionieren, wie es ist.

Sehen Sie es hier arbeiten: http://sqlfiddle.com/#!9/1ba756/2