一尘不染

postgresql中的除法(/)没有给出我的答案

sql

我有一个表software和列在它dev_costsell_cost。如果dev_cost为16000,sell_cost则为7500。

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

我已查询如下:

select dev_cost / sell_cost from software ;

它返回2作为答案。但是我们需要得到3,对吗?

这将是什么查询?提前致谢。


阅读 195

收藏
2021-03-17

共1个答案

一尘不染

您的列具有整数类型,并且整数除法会将结果截断为0。为了获得准确的结果,您需要将至少一个值强制转换为float或小数

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上的演示。)

2021-03-17