Apache Drill SQL:当分子>;分母

Apache Drill SQL:当分子>;分母,sql,apache-drill,Sql,Apache Drill,我在apache drill SQL中遇到了一个奇怪但基本的问题,一个简单的除法运算给出了错误的结果,如下所示: 0: jdbc:drill:drillbit=localhost> SELECT 'Test' FROM (VALUES(1)); +---------+ | EXPR$0 | +---------+ | Test | +---------+ 1 row selected (1.027 seconds) 0: jdbc:drill:drillbit=localhost&

我在apache drill SQL中遇到了一个奇怪但基本的问题,一个简单的除法运算给出了错误的结果,如下所示:

0: jdbc:drill:drillbit=localhost> SELECT 'Test' FROM (VALUES(1));
+---------+
| EXPR$0  |
+---------+
| Test    |
+---------+
1 row selected (1.027 seconds)
0: jdbc:drill:drillbit=localhost> select 10/100 from (VALUES(1));
+---------+
| EXPR$0  |
+---------+
| 0       |
+---------+
1 row selected (0.67 seconds)
0: jdbc:drill:drillbit=localhost> select 100/10 from (VALUES(1));
+---------+
| EXPR$0  |
+---------+
| 10      |
+---------+
1 row selected (0.662 seconds)
0: jdbc:drill:drillbit=localhost> select 10/11 from (VALUES(1));
+---------+
| EXPR$0  |
+---------+
| 0       |
+---------+
1 row selected (0.649 seconds)
0: jdbc:drill:drillbit=localhost> select cast(10/11 as float) from (VALUES(1));
+---------+
| EXPR$0  |
+---------+
| 0.0     |
+---------+
1 row selected (0.74 seconds)
0: jdbc:drill:drillbit=localhost> select cast(10/11 as double) from (VALUES(1));
+---------+
| EXPR$0  |
+---------+
| 0.0     |
+---------+
1 row selected (0.691 seconds)
0: jdbc:drill:drillbit=localhost> select cast(10*100/11 as double) from (VALUES(1));
+---------+
| EXPR$0  |
+---------+
| 90.0    |
+---------+
1 row selected (0.72 seconds)
0: jdbc:drill:drillbit=localhost> select cast(10*100/11 as double)/100 from (VALUES(1));
+---------+
| EXPR$0  |
+---------+
| 0.9     |
+---------+

演练版本是1.6和1.8(在这两个版本中都试用过)。即使是
round
也无济于事。有什么解决办法吗?

这是整数运算。
11/4=2(和提醒=3)

必须将其中一个值转换为请求的类型

select cast(x as float)/y

这是整数运算。
11/4=2(和提醒=3)

必须将其中一个值转换为请求的类型

select cast(x as float)/y