PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Division (/) ne donnant pas ma réponse dans postgresql

Vos colonnes ont des types entiers et la division entière tronque le résultat vers zéro. Pour obtenir un résultat précis, vous devrez convertir au moins une des valeurs en nombre flottant ou décimal :

select cast(dev_cost as decimal) / sell_cost from software ;

ou juste :

select dev_cost::decimal / sell_cost from software ;

Vous pouvez ensuite arrondir le résultat à l'entier le plus proche en utilisant le ceil() fonction :

select ceil(dev_cost::decimal / sell_cost) from software ;

(Voir la démo sur SQLFiddle.)