Multiple expression and aggregation functions might generate data of a data type that is different from the input data.
For example, when you multiply two decimal numbers with a precision of 18 digits, the resulting data type could be a decimal with a precision of 28 digits.
For input data type of Decimal with a precision of 38 digits, the result of certain operations might produce data that may not fit into resultant data type. So the user might get an overflow exception.
The following functions might require a data type conversion to accommodate an increase in the size of the data when compared to the input data types:
avg
cume
divide
median
movingavg
movingsum
multiply
Percentile
Sum
For example, when the input data is of the Integer data type and you use multiplication operation, the resulting data type could be of the bigint data type. Similarly, when the input data type is of the Decimal data type of precision as 18 digits, the result of the multiplication operation might be large and within Decimal data type of the precision as 28 digits.