【问题标题】:Redshift: Numeric data overflow (result precision)Redshift:数值数据溢出(结果精度)
【发布时间】:2021-02-13 04:03:40
【问题描述】:

您好,我有一个 Redshift 数据库,正在尝试将表“scans”/列“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

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

如何插入数据不出错?任何帮助表示赞赏。

【问题讨论】:

  • 嗯,你试过decimal(31, 4) 吗?
  • 是的,不幸的是同样的问题......
  • 没有强制转换的 sum(s.scan_cost) 的值是多少?
  • @eshirvana 值为“725978152.0180”。
  • @eshirvana 这是数字。它们都是数字:“scan_cost”和“net_rate”。

标签: sql casting amazon-redshift precision


【解决方案1】:
  1. 尝试检查您要插入的列的类型是什么
  2. 在您插入的值中使用类型。

根据我的理解,报错的意思是你要插入的值的类型和列中的值的类型不一样。

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

【讨论】:

    猜你喜欢
    • 2019-03-06
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多