Redshift:数值数据溢出(结果精度)

Redshift: Numeric data overflow (result precision)

提问人:ERR 提问时间:10/31/2020 最后编辑:ERR 更新时间:9/20/2023 访问量:18376

问:

嗨,我有一个 Redshift 数据库,并且正在尝试将表“扫描”/列“net_rate”(数据类型数字)中的数据插入到另一个表“visits_by_scan”/列“scan_cost”(数据类型数字)中。我使用的查询如下:

insert into visits_by_scan (scan_cost)
select sum(cast(s.net_rate as decimal(30,4))) 
from scans s

当我尝试运行此查询时,我收到以下数字溢出错误消息:

enter image description here

如何插入数据而不会出现任何错误?任何帮助都是值得赞赏的。

SQL 转换 Amazon-Redshift 精度

评论

0赞 Gordon Linoff 10/31/2020
好吧,你试过了吗?decimal(31, 4)
0赞 ERR 10/31/2020
是的,不幸的是,同样的问题......
0赞 eshirvana 10/31/2020
没有强制转换的 sum(s.scan_cost) 的值是多少?
0赞 ERR 10/31/2020
@eshirvana 值为“725978152.0180”。
0赞 ERR 10/31/2020
@eshirvana 它是数字。它们都是数字:“scan_cost”和“net_rate”。

答:

0赞 randomcheckkkkk 7/24/2021 #1
  1. 尝试检查要插入的列的类型是什么
  2. 在插入的值中使用类型。

根据我的理解,错误意味着要插入的值类型与列中的值类型不同。

例如,不能将 1.3333 插入到只有一位数值的列中,例如 1.3。