Redshift除法结果不包含小数

And*_*gel 7 sql amazon-redshift

我正在尝试做一些非常基本的事情来计算Redshift中两列之间的百分比。但是,当我使用示例运行查询时,结果只是零,因为未覆盖小数。

码:

select 1701 / 84936;
Run Code Online (Sandbox Code Playgroud)

输出:

在此处输入图片说明

我试过了 :

select cast(1701 / 84936 as numeric (10,10));
Run Code Online (Sandbox Code Playgroud)

但结果是0.0000000000

我该如何解决这个愚蠢的事情?

Luk*_*zda 11

它是整数除法。确保至少一个参数是:(NUMERIC准确的数据类型)/ FLOAT(警告:它是近似的数据类型):

/除法(整数除法截断结果)

select 1701.0 / 84936;
-- or
SELECT 1.0 * 1701 / 84936;
-- or
SELECT CAST(1701 AS NUMERIC(10,4))/84936;
Run Code Online (Sandbox Code Playgroud)

DBFiddle演示

  • 如果你删除对“FLOAT”的引用,那么我会赞成;) 任何提出这个问题的人都不需要指向浮点运算的毒蛇巢穴...... (2认同)