问题
Using PostgreSQL 9.3, I want to convert the calculated values to data type float.
My first attempt:
SELECT float(SUM(Seconds))/-1323 AS Averag;
Gives me this error:
syntax error at or near "SUM"
My second attempt:
SELECT to_float(SUM(Seconds))/-1323 AS Averag;
Gives me this error:
function to_float(bigint) does not exist
回答1:
You need to use the cast syntax:
SELECT CAST (SUM(Seconds) AS FLOAT)/-1323 AS Averag;
回答2:
There is also the shorthand cast syntax:
SELECT sum(seconds)::float / -1323 AS averag;
- Postgres data type cast
回答3:
It is not exact casting but a trick to do the job :) and works almost in any language.
SELECT SUM(Seconds)/-1323.0 AS Averag;
OR
SELECT SUM(Seconds)*1.0/-1323 AS Averag;
来源:https://stackoverflow.com/questions/28736227/cast-syntax-to-convert-a-sum-to-float