CASE und Aggregatfunktion

CASE und Aggregatfunktion

am 26.03.2009 09:48:38 von Marc Hanisch

Hallo Liste,

ich nutze öfter eine Query in ähnlicher Art und Weise:

SELECT name,
CASE WHEN SUM(betrag) > 0
THEN SUM(betrag)
ELSE 0
END AS einnahmen,
CASE WHEN SUM(betrag) < 0
THEN SUM(betrag)
ELSE 0
END AS ausgaben
FROM table
GROUP BY name

Erreichen will ich damit, dass ein und das selbe Feld in Abhängigkei=
t
des Inhaltes also unter anderem Namen (einnahmen und ausgaben) ausgeben
wird.
Es erscheint mir aber umständlich, dass ich PostgreSQL für die =
Bedingung
(WHEN) und für die Anweisung (THEN) um die Summierung bemühen m=
uss, was
ja wahrscheinlich doppelt Performance frisst... Gibt es da einen
eleganteren Weg? Schließlich wurde die Summe des Betrages ja bei der
ersten Bedingung bereits berechnet.

Viele Grüße,
Marc


--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein