Division ( / ) ne pas donner ma réponse dans postgresql
J'ai une table software
et les colonnes comme dev_cost
, sell_cost
. Si dev_cost
est 16000 et sell_cost
est de 7500.
Comment puis-je trouver la quantité de logiciels à être vendus, afin de récupérer le dev_cost
?
J'ai posé la question ci-dessous:
select dev_cost / sell_cost from software ;
Il est de retour 2 comme la réponse. Mais nous avons besoin d'obtenir 3, à droite?
Quelle serait la requête pour qui? Merci à l'avance.
Si sell_cost 7500, nous avons besoin de vendre 3 logiciel pour récupérer des dev_cost c'est à dire > 16000. C'est ma question
essayez
Il a travaillé. Grâce wingedpanther 🙂
sélectionnez ceil(dev_cost::numérique/sell_cost) de logiciels; --travaillé
N'oubliez pas de accepter une réponse
essayez
select ceil(16000::numeric/7500)
Il a travaillé. Grâce wingedpanther 🙂
sélectionnez ceil(dev_cost::numérique/sell_cost) de logiciels; --travaillé
N'oubliez pas de accepter une réponse
OriginalL'auteur zeewagon | 2015-12-29
Vous devez vous connecter pour publier un commentaire.
Votre colonnes ont des types d'entiers, et division entière tronque le résultat vers zéro. Pour obtenir un résultat précis, vous aurez besoin de fonte d'au moins une des valeurs de type float ou décimal:
ou tout simplement:
Vous pouvez arrondir le résultat à l'entier le plus proche à l'aide de la
ceil()
fonction:(Voir démo sur SQLFiddle.)
Bon point, bien que peu probable à la matière dans l'OP. (Tout ce qu'ils demandent est la division entière qui arrondit; flotteurs fera l'amende juste comme un type intermédiaire pour que, au moins, sauf si les valeurs d'origine sont bigints.) Encore, fixe.
Merci!!!! Votre réponse m'a aidé.
Heureux d'être de l'aide. 🙂 BTW, au lieu de commenter les réponses que vous trouvez utile, vous pouvez voter en cliquant sur le vers le haut en triangle pointant icône dans le coin supérieur gauche de la réponse. Cela récompense le répondeur avec les points de réputation et leur permet de savoir que leur réponse est apprécié, et il a également aide à la meilleure des réponses montent en haut de la page.
OriginalL'auteur Ilmari Karonen
Vous pouvez en fonte de type entier pour
numeric
et l'utilisationceil()
fonction permettant d'obtenir le résultat souhaitéRésultat:
Afin que votre requête doit être
OriginalL'auteur Vivek S.
Cette requête résultat arrondi à l'entier suivant
dev_cost
arrive à être un multiple entier desell_cost
: voir l'exemple.Cette requête est ok. Mais si la table des valeurs plus, disons, par exemple, dev_cost est de 6000 et sell_cost est de 400, la réponse 15 serait correct. Mais votre requête donne 16 comme la réponse. Que devons-nous faire? Je suis nouveau sur le SQL, corrigez-moi si je me trompe.
OriginalL'auteur Abylay Sabirgaliyev