From: | Thomas Markus <t(dot)markus(at)proventis(dot)net> |
---|---|
To: | marc(dot)hanisch(at)ateam(dot)de |
Cc: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: CASE und Aggregatfunktion |
Date: | 2009-03-26 10:05:43 |
Message-ID: | 49CB5377.90608@proventis.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Hi,
mach doch eher sowas wie:
SELECT name,
greatest(SUM(betrag),0) AS einnahmen,
least(SUM(betrag),0) AS ausgaben
FROM table
GROUP BY name
die abfrage scheint aber rein fachlich falsch zu sein da mindestens
einer der beiden summen 0 sein muss. Ich tippe mal es soll eher sowas
sein wie:
SELECT name,
sum(greatest(betrag,0)) AS einnahmen,
sum(least(betrag,0)) AS ausgaben
FROM table
GROUP BY 1
Gruss
Thomas
Marc Hanisch schrieb:
> 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
>
>
>
>
--
Thomas Markus
====================================================
proventis GmbH | Zimmerstr. 79-81 | D-10117 Berlin |
Tel +49 (0)30 2936399-22 | Fax -50 | t(dot)markus(at)proventis(dot)net
-----------------------------------------------------------------
Geschäftsführer: Norman Frischmuth | Sitz: Berlin
Handelsregister: AG Berlin-Charlottenburg, HR 82917
-----------------------------------------------------------------
Blue Ant-webbasiertes Projektmanagement - aktuelle Termine 2008:
http://www.proventis.net/website/live/blueant/veranstaltungen.html
====================================================
Attachment | Content-Type | Size |
---|---|---|
t_markus.vcf | text/x-vcard | 266 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Marc Hanisch | 2009-03-26 10:11:46 | Re: CASE und Aggregatfunktion |
Previous Message | Marc Hanisch | 2009-03-26 09:18:01 | CASE und Aggregatfunktion |