在hive中计算收入出现的一个问题:
收入计算公式是若干个数据项相加,total_income = income_a+income_b+income_c+......
有的数据项原本就是整形,不带小数点的,表结构里面此项是bigint类型。有的数据项就是带小数点的,设置的decimal(18,2)。
当这些数据项相加的时候,总收入却是整形。bigint+decimal(18,2) --->bigint,
而且不是把bigint强制转换为decimal后再和其他项相加之后再四舍五入得来的整形。
所以这里需要注意的是如果其中有一个数据项是带小数点的,那么其他数据项即使数值不是带小数点的也要设置为decimal类型。