Search Postgresql Archives

Re: getting around---division by zero on numeric

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You could use a CASE statement...

select
	type,
	sum(sales),
	sum(cost),
      CASE WHEN sum(sales) <> 0 THEN (sum(sales) * sum(cost) / sum(sales)) *
100 ELSE 0 END
from test
group by 1

However, I guess that your example is just not what you really use as
sum(sales) * sum(cost) / sum(sales) seems very similar to sum(cost).....


----------------------------------------------------------------------------
--------------- 
Patrick Fiche 
email : patrick.fiche@xxxxxxxxxxx 
tél : 01 69 29 36 18 
----------------------------------------------------------------------------
--------------- 




-----Original Message-----
From: pgsql-general-owner@xxxxxxxxxxxxxx
[mailto:pgsql-general-owner@xxxxxxxxxxxxxx]On Behalf Of Tim Nelson
Sent: mercredi 19 octobre 2005 14:27
To: pgsql-general@xxxxxxxxxxxxxx
Subject:  getting around---division by zero on numeric 


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
from test
group by 1
having sum(sales) != 0


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.12.4/142 - Release Date: 18/10/2005

-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.12.4/142 - Release Date: 18/10/2005
 

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux