当我在HIVE SQL中应用复杂的公式时,我遇到了需要将三个不同的派生值相乘(使用其他一些列)的情况。这三个NOT NULL列的乘法返回NULL作为输出。需要帮助。
从中获取值的基列的数据类型是DECIMAL(18,6)
提前致谢
答案 0 :(得分:1)
感谢Kishore的建议。
如果我单独投射所有三个操作数,它就有效。
cast(a) as decimal(18,6) * cast(b) as decimal(18,6) * cast(c) as decimal(18,6);
答案 1 :(得分:0)
试试这个,CAST最后输出你多个三个值。
cast((a*b*c) as decimal(18,6));
其中a,b,c是您的派生列。 请注意,如果乘法导致溢出,则必须将其中一个运算符强制转换为类型层次结构中较高的类型,意味着int为long。