RedShift:构造时在大小写后舍入数字
RedShift: rounding numeric after case when construction
我尝试使用这个转换
CASE
WHEN s.files_duration != '' THEN s.files_duration
ELSE 0.0
END :: NUMERIC AS files_duration_2
对于 RedShift。
我正在等待此字段中的小数,例如:2.52 等。但值四舍五入为 3 等。为什么?
你能告诉我我做错了什么吗?
谢谢。
转换为不带刻度的数字基本上是将其定义为整数,因此 3。来自 RS 文档“如果未指定,默认刻度为 0。”
这个 SQL 片段提出了很多问题(比如 s.files_duration 是字符串还是数字类型?)但是转换为 NUMERIC(18,0) 似乎是问题的根源。尝试 NUMERIC(12,2) - 或任何对您的数据有意义的精度和比例。
我尝试使用这个转换
CASE
WHEN s.files_duration != '' THEN s.files_duration
ELSE 0.0
END :: NUMERIC AS files_duration_2
对于 RedShift。
我正在等待此字段中的小数,例如:2.52 等。但值四舍五入为 3 等。为什么?
你能告诉我我做错了什么吗?
谢谢。
转换为不带刻度的数字基本上是将其定义为整数,因此 3。来自 RS 文档“如果未指定,默认刻度为 0。”
这个 SQL 片段提出了很多问题(比如 s.files_duration 是字符串还是数字类型?)但是转换为 NUMERIC(18,0) 似乎是问题的根源。尝试 NUMERIC(12,2) - 或任何对您的数据有意义的精度和比例。