Re: SQL error: function round(double precision, integer) does not
От | Christoph Haller |
---|---|
Тема | Re: SQL error: function round(double precision, integer) does not |
Дата | |
Msg-id | 42231EB6.9F6D20F3@rodos.fzk.de обсуждение исходный текст |
Ответ на | SQL error: function round(double precision, integer) does not exist (TJ O'Donnell <tjo@acm.org>) |
Список | 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
В списке pgsql-sql по дате отправления: