From: | Christoph Haller <ch(at)rodos(dot)fzk(dot)de> |
---|---|
To: | tjo(at)acm(dot)org |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: SQL error: function round(double precision, integer) does not |
Date: | 2005-02-28 13:37:58 |
Message-ID: | 42231EB6.9F6D20F3@rodos.fzk.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
TJ O'Donnell wrote:
>
> I received the following error when executing a SQL statement:
>
> SQL error:
> ERROR: function round(double precision, integer) does not exist
>
> In statement:
>
> select id,smiles,smarts,parameter,oe_count_matches(smiles,smarts) as count,
> round((parameter*oe_count_matches(smiles,smarts)),2) as psa,tpsa(smiles) as ctpsa,tpsa
> from structure,tpsa
> where id < 237610
> and oe_count_matches(smiles,smarts) > 0
>
> order by id;
>
> The functions described at:
> http://www.postgresql.org/docs/7.4/static/functions-math.html
> show that round(numeric,int) should work ok.
> If I use round() without a second argument, it works OK, but
> this gives a loss of precision which I do not want.
>
> Can anyone help me with this?
>
> Thanks,
> TJ
>
And round(numeric,int) does work ok.
The error message is telling you
there is double precision argument where a numeric
is expected.
And with 7.4.5 it says in addition
HINT: No function matches the given name and argument types.
You may need to add explicit type casts.
Try
round((parameter*oe_count_matches(smiles,smarts))::numeric,2)
Works for me with double precision arguments.
Regards, Christoph
From | Date | Subject | |
---|---|---|---|
Next Message | Joel Fradkin | 2005-02-28 14:09:09 | Re: diference in dates in minutes |
Previous Message | Aarni Ruuhimäki | 2005-02-28 13:08:27 | Re: Read count ? |