CASE und Aggregatfunktion

From: Marc Hanisch <hanisch(at)ateam(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: CASE und Aggregatfunktion
Date: 2009-03-26 09:18:01
Message-ID: 49CB4849.5050900@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

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Thomas Markus 2009-03-26 10:05:43 Re: CASE und Aggregatfunktion
Previous Message Marc Hanisch 2009-03-26 08:48:38 CASE und Aggregatfunktion