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