如何解决Snowflake中小数值整数除法结果被强制为0的问题
解决Snowflake整数除法返回0的问题
在Snowflake里,两个整数执行除法时默认会触发整数除法——直接截断小数部分只保留整数结果,所以1/2940744得到0是正常的默认行为。要获取包含小数的真实计算结果,可通过以下几种方式处理:
- 给其中一个操作数添加小数位,强制触发浮点/数值除法:
1.0 / 2940744 - 显式转换其中一个数为浮点或数值类型:
CAST(1 AS FLOAT) / 2940744 -- 或者使用Snowflake简写转换语法 1::NUMERIC / 2940744 - 如果需要更高精度的结果,可以指定数值类型的精度参数:
1::NUMERIC(38,10) / 2940744
以上方法都会让Snowflake执行精确的除法运算,返回包含小数部分的真实计算结果。
内容的提问来源于stack exchange,提问作者SKSKSKSK
相关产品推荐
相关产品推荐

