当前位置:  开发笔记 > 数据库 > 正文

分部(/)没有在postgresql中给出我的答案

如何解决《分部(/)没有在postgresql中给出我的答案》经验,为你挑选了2个好方法。

我有一个表software和列,作为dev_cost,sell_cost.如果dev_cost是16000并且sell_cost是7500.

如何找到要销售的软件数量以便恢复dev_cost

我查询如下:

select dev_cost / sell_cost from software ;

它回答2作为答案.但我们需要得到3,对吧?

对此有什么疑问?提前致谢.



1> Ilmari Karon..:

您的列具有整数类型,整数除法将结果截断为零.要获得准确的结果,您需要将至少一个值转换为float或decimal:

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

要不就:

select dev_cost::decimal / sell_cost from software ;

然后,您可以使用以下ceil()函数将结果舍入到最接近的整数:

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

(参见关于SQLFiddle的演示.)



2> Vivek S...:

您可以将整数类型转换为numeric并使用ceil()函数来获取所需的输出

PostgreSQL ceil函数返回大于或等于数字的最小整数值。

SELECT 16000::NUMERIC / 7500 col 
      ,ceil(16000::NUMERIC / 7500) 

结果:

col                  ceil 
------------------   ---- 
2.1333333333333333     3    

所以你的查询应该是

select ceil(dev_cost::numeric/sell_cost) 
from software

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有