Hive 将三个非NULL派生列相乘,在配置单元SQL中输出NULL。

Hive 将三个非NULL派生列相乘,在配置单元SQL中输出NULL。,hive,hiveql,Hive,Hiveql,当我在HiveSQL中应用一个复杂的公式时,我遇到了一种情况,需要将三个不同的派生值相乘(使用其他一些列)。这三个NOTNULL列的乘积将返回NULL作为输出。我需要帮助 从中派生值的基列的数据类型为十进制(18,6) 提前感谢尝试此操作,在三个值的倍数处投射最终输出 cast((a*b*c) as decimal(18,6)); 其中a,b,c是派生列。 请注意,如果乘法导致溢出,则必须将其中一个运算符强制转换为类型层次结构中较高的类型,即从int到long。感谢Kishore的建议 如果我

当我在HiveSQL中应用一个复杂的公式时,我遇到了一种情况,需要将三个不同的派生值相乘(使用其他一些列)。这三个NOTNULL列的乘积将返回NULL作为输出。我需要帮助

从中派生值的基列的数据类型为十进制(18,6)


提前感谢

尝试此操作,在三个值的倍数处投射最终输出

cast((a*b*c) as decimal(18,6));
其中a,b,c是派生列。
请注意,如果乘法导致溢出,则必须将其中一个运算符强制转换为类型层次结构中较高的类型,即从int到long。

感谢Kishore的建议

如果我将所有三个操作数分别强制转换,它就会起作用

    cast(a) as decimal(18,6) * cast(b) as decimal(18,6) * cast(c) as decimal(18,6);