Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
quelqu'un peut-il m'expliquer pourquoi un :
select cast (67/147 as numeric(5,5) )
me renvoie :
0.00000
au lieu du 0,45578 attendu ?
Postgres 8.3
Ubuntu 8.04
Hors ligne
la division entre 2 entiers sous postgres est tronqué donc 67/147 donne 0
par contre select cast (67./147. as numeric(5,5) ) renvoie bien le resultat attendu
Hors ligne
Merci,
En fait mes valeurs entières étaient le résultat de select count, et ce sont ces Select count que j'ai du caster :
select count(ouv1.idcat), round((cast(count(ouv1.idcat) as numeric(5,2))/
cast((select count(ouv2.idouv) from ouvrage ouv2) as numeric(5,2) )*100 ))||' %' as pourcent
from ouvrage ouv1
group by ouv1.idcat
order by count(ouv1.idcat) desc
count | pourcent
-------+----------
67 | 45 %
44 | 30 %
38 | 26 %
sans doute un peu lourdingue, mais je n'ai pas mieux
Hors ligne
bonsoir une ecriture un peu plus concise et pratique
count(ouv1.idcat)::numeric(5,2) <==> cast(count(ouv1.idcat) as numeric(5,2))
Hors ligne
Pages : 1