Impala四舍五入到小数点后

时间:2017-01-13 13:21:40

标签: sql hive decimal rounding impala

我在hive表中有一个列,我想使用impala和hive来查询该列,它应该最多可以舍入10个十进制值。

即test_column = 32.542999471999998

select test_column应返回32.5429994720。我可以在select查询中使用什么函数来返回这样的值?

2 个答案:

答案 0 :(得分:1)

得到了解决方案。

从table_name

中选择强制转换(test_column as decimal(20,10))

这将导致:32.5429994720

其中round(test_column,10)未返回所需结果。

答案 1 :(得分:0)

在Cloudera 5 / RHEL上,结果不像您一样(您使用Hive吗?):

在Impala中:

Select cast ( 32.542999471999998 as decimal(20,10))
, ROUND( 32.542999471999998, 10)
, cast(round( 32.542999471999998,10) as decimal(20,10))
  

cast(32.542999471999998 as decimal(20,10))|   回合(32.542999471999998,10)|演员(round(32.542999471999998,10)as   十进制(20,10))

     

32.5429994719 | 32.5429994720 | 32.5429994720