【问题标题】:RedShift: rounding numeric after case when constructionRedShift:构造时在大小写后舍入数字
【发布时间】:2021-10-25 11:53:53
【问题描述】:

我尝试使用这种转换

    CASE
        WHEN s.files_duration != '' THEN s.files_duration
        ELSE 0.0 
    END :: NUMERIC AS files_duration_2

用于红移。

我在这个字段中等待十进制,例如:2.52 等。但值四舍五入到 3 等。为什么?

你能告诉我我做错了什么吗?

谢谢。

【问题讨论】:

    标签: amazon-redshift


    【解决方案1】:

    通过转换为没有比例的数字基本上是将其定义为整数,因此 3. 来自 RS 文档“默认比例,如果未指定,则为 0。”

    此 SQL 片段引发了许多问题(例如 s.files_duration 是字符串还是数字类型?),但转换为 NUMERIC(18,0) 似乎是问题的根源。尝试 NUMERIC(12,2) - 或任何对您的数据有意义的精度和比例。

    【讨论】:

    • 非常感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2016-12-18
    • 2014-06-11
    相关资源
    最近更新 更多