我有一个表{
"batting_order": [
[
"b",
"1"
],
[
"a",
"1"
]
]
}
,其中的列为software
,dev_cost
。如果sell_cost
为16000且dev_cost
为7500。
如何找到要销售的软件数量以恢复sell_cost
?
我查询如下:
dev_cost
回答2作为答案。但是我们需要得到3,对吧?
对此的查询是什么?提前谢谢。
答案 0 :(得分:50)
您的列包含整数类型,integer division truncates the result towards zero。要获得准确的结果,您需要cast at least one of the values to float or 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 ;
答案 1 :(得分:4)
您可以将整数类型转换为SELECT 16000::NUMERIC / 7500 col
,ceil(16000::NUMERIC / 7500)
并使用ceil()
函数获取所需的输出
PostgreSQL ceil函数返回最小的整数值 大于或等于数字。
col ceil
------------------ ----
2.1333333333333333 3
结果:
select ceil(dev_cost::numeric/sell_cost)
from software
所以你的查询应该是
var Fibonacci = (function() {
var _Fibonacci = {
// set initial values
result: [0, 1, 1],
input: 0,
// main function
find: function (number) {
this.input = number;
if (this.isValid()) {
this.calculate();
return this.result.pop();
}
return 'Invalid input';
},
// sub functions
isValid: function () {
return this.input != 0
},
calculate: function () {
for (var i=2; i<this.input; i++) { // fix your code here
this.result[i+1] = this.result[i] + this.result[i-1];
}
}
};
// return the main function
return _Fibonacci.find.bind(_Fibonacci);
}());
console.log(
Fibonacci(0),
Fibonacci(4),
Fibonacci(6)
);
答案 2 :(得分:1)
此查询将结果舍入到下一个整数
select round(dev_cost ::decimal / sell_cost + 0.5)
答案 3 :(得分:1)
您还可以将变量转换为所需的类型,然后应用除法:
SELECT (dev_cost::numeric/sell_cost::numeric);
您可以舍入您的值,并指定点后的位数:
SELECT TRUNC((dev_cost::numeric/sell_cost::numeric),2);