web-dev-qa-db-fra.com

Syntaxe de conversion pour convertir une somme en float

Avec PostgreSQL 9.3, je souhaite convertir les valeurs calculées en type de données float.

Ma première tentative:

SELECT float(SUM(Seconds))/-1323 AS Averag;

Me donne cette erreur:

syntax error at or near "SUM"

Ma deuxième tentative:

SELECT to_float(SUM(Seconds))/-1323 AS Averag;

Me donne cette erreur:

 function to_float(bigint) does not exist
36
MAK

Vous devez utiliser la syntaxe cast:

SELECT CAST (SUM(Seconds) AS FLOAT)/-1323 AS Averag;
46
Mureinik

Il existe également la syntaxe de conversion abrégée:

SELECT sum(seconds)::float / -1323 AS averag;
67
Erwin Brandstetter

Ce n'est pas un casting précis, mais une astuce pour faire le travail :) et fonctionne presque dans n'importe quelle langue.

SELECT SUM (Seconds)/- 1323.0 AS Averag;

OR

SELECT SUM (Seconds) * 1.0/-1323 AS Averag;

4
Souvik