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 № 1Sie 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