You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL整数除法返回0问题:原因分析与解决方法

整数除法导致百分比计算结果为0的问题与解决方法

问题场景

在Metabase中需计算do_qty占target_lembar的百分比,最初使用的SQL查询语句如下:

select distributor_id
, target_lembar
, do_qty
, do_qty::integer / target_lembar::integer do_qty_divide_target_lembar_percentage
from raw 
where target_lembar>0

执行后发现do_qty_divide_target_lembar_percentage字段返回结果均为0,例如第一行distributor_id=155的预期结果应为28.16%,但实际得到0值。

问题原因

这是数据库整数除法的特性导致的:当两个整数类型的数值相除时,数据库会直接舍弃结果的小数部分,仅返回整数商。如果do_qty的数值小于target_lembar,相除后的小数部分会被截断,最终结果就会变成0。

解决方法

将参与除法运算的两个字段转换为浮点数类型后再进行计算,修改后的查询语句如下:

select distributor_id
, target_lembar
, do_qty
, do_qty::float / target_lembar::float do_qty_divide_target_lembar_percentage
from raw 
where target_lembar>0

内容的提问来源于stack exchange,提问作者Cignitor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:52:12