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
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 |