CASE und Aggregatfunktion

Hallo Liste,

ich nutze =C3=B6fter eine Query in =C3=A4hnlicher 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=C3=A4ngigkei=
t
des Inhaltes also unter anderem Namen (einnahmen und ausgaben) ausgeben
wird.
Es erscheint mir aber umst=C3=A4ndlich, dass ich PostgreSQL f=C3=BCr die =
Bedingung
(WHEN) und f=C3=BCr die Anweisung (THEN) um die Summierung bem=C3=BChen m=
uss, was
ja wahrscheinlich doppelt Performance frisst... Gibt es da einen
eleganteren Weg? Schlie=C3=9Flich wurde die Summe des Betrages ja bei der
ersten Bedingung bereits berechnet.

Viele Gr=C3=BC=C3=9Fe,
Marc


--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Marc Hanisch [ Do, 26 März 2009 09:48 ] [ ID #1995239 ]
Datenbanken » gmane.comp.db.postgresql.german » CASE und Aggregatfunktion

Vorheriges Thema: CASE und Aggregatfunktion
Nächstes Thema: == WöchentlicherPostgreSQL Newsletter - 22.März2009