CASE und Aggregatfunktion

From: Marc Hanisch <marc(dot)hanisch(at)ateam(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: CASE und Aggregatfunktion
Date: 2009-03-26 08:48:38
Message-ID: 49CB4166.9000506@ateam.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

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ängigkeit
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 muss, 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

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Marc Hanisch 2009-03-26 09:18:01 CASE und Aggregatfunktion
Previous Message Andreas 'ads' Scherbaum 2009-03-23 10:49:44 == Wöchentlicher PostgreSQL Newsletter - 22. März 2009 ==