From: | Andreas Kretschmer <akretschmer(at)spamfence(dot)net> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: getting around---division by zero on numeric |
Date: | 2005-10-19 13:27:53 |
Message-ID: | 20051019132753.GA4189@kaufbach.delug.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Tim Nelson <timnelson(at)phreaker(dot)net> schrieb:
> I am getting division by zero on a calculated field ( sum(sales) is 0 ) and
> I can't find a way around this. I figured out you can't use an aggregate
> in a where, and using having the parser must (obviously) evaluate the
> select fields before considering teh having clause.
>
> Does anyone have a way around this? Thanks!
>
> select
> type,
> sum(sales),
> sum(cost),
> (sum(sales) * sum(cost) / sum(sales)) * 100
You need a case-statement like this example:
test=> select * from foo;
id | wert
----+------
0 | 0
1 | 1
2 |
(3 Zeilen)
test=> select id, case when wert != 0 then 5/wert end from foo;
id | case
----+--------------------
0 |
1 | 5.0000000000000000
2 |
(3 Zeilen)
HTH, Regards, Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°
From | Date | Subject | |
---|---|---|---|
Next Message | Jerry Sievers | 2005-10-19 13:30:57 | Re: getting around---division by zero on numeric |
Previous Message | Michael Glaesemann | 2005-10-19 13:19:21 | Re: getting around---division by zero on numeric |