sql - 红移中的乘法
问题描述
我是 Redshift 的新手,尝试在我的 SQL 中进行乘法运算,如下所述
Case When COALESCE(height * width * length * weight, 0) = 0 then ...
收到以下错误消息,
无效操作:结果比例溢出最大精度详细信息:
有人可以指导我。
解决方案
作为Redshift 文档:
精确
整数中有效位数的总数:小数点两边的位数。例如,数字 48.2891 的精度为 6,小数位数为 4。如果未指定,则默认精度为 18。最大精度为 38。
所以我认为这取决于您的数据类型的当前精度。一种解决方法是强制转换:
Case When COALESCE(height::decimal(8,3) * width::decimal(8,3) * length::decimal(8,3) * weight::decimal(8,3), 0) = 0 then ...
推荐阅读
- c - 将随机元素分配给函数中的 int 2D 矩阵时,如何避免 C 中的 SIGSEV 分段错误?
- maven - 如何使用 NetBeans 将额外的依赖项添加到 Maven Web 应用程序资源(WAR)项目到 Maven 存储库?
- visual-studio - 通过引用来自相同解决方案的诊断分析仪
- python - 为具有多个输出的模型尝试 train_on_batch 时,Keras 中的 sample_weight 问题
- google-maps - 如何将点保存到谷歌地图
- node.js - 如何有效存储聊天记录【NodeJS、SQL】
- excel - 在excel中将两列交错在一起
- sql - SQL Server:使用 distinct 关键字选择唯一条目,但它返回所有列
- javascript - 当我在 cookie 值中有 % 符号时,删除 cookie 方法不起作用
- android - 在Android中将图像从文件路径转换为base64对我不起作用