【发布时间】:2016-05-05 22:58:35
【问题描述】:
我发现 Amazon Redshift 将浮点数的精度截断为非常低的精度(6 位)。有没有办法解决这个问题?
例子:
SELECT
JSON_EXTRACT_PATH_TEXT('{"a":123456789.5555555, "b":123456789.0}', 'a')::float,
JSON_EXTRACT_PATH_TEXT('{"a":123456789.5555555, "b":123456789.0}', 'b')::float;
给予:
json_extract_path_text | json_extract_path_text
------------------------+------------------------
123457000 | 123457000
(1 row)
将其与整数进行比较:
SELECT
JSON_EXTRACT_PATH_TEXT('{"a":123456789, "b":123456789}', 'a')::float,
JSON_EXTRACT_PATH_TEXT('{"a":123456789, "b":123456789}', 'b')::float;
结果:
json_extract_path_text | json_extract_path_text
------------------------+------------------------
123456789 | 123456789
(1 row)
看起来float应该有更高的精度,而不是更少!!!
感谢您的任何见解。
【问题讨论】:
-
为什么分析数据库需要如此精确?无论如何,您将要做 AVG 和其他不需要如此高精度的统计函数。
标签: json amazon-redshift