Varias funciones de agregación y expresión pueden generar datos pertenecientes a un tipo de datos distinto al de los datos de entrada.
Por ejemplo, cuando se multiplican dos números decimales con una precisión de 18 dígitos, el tipo de datos resultante podría ser un decimal con una precisión de 28 dígitos.
Para un tipo de datos de entrada Decimal con una precisión de 38 dígitos, el resultado de determinadas operaciones podría producir datos que no encajen en el tipo de datos resultante. Esto provocaría que el usuario obtenga una excepción por desbordamiento.
Las siguientes funciones pueden requerir la conversión del tipo de datos para dar cabida a un aumento del tamaño de los datos en comparación con los tipos de datos de entrada:
avg
cume
divide
median
movingavg
movingsum
multiply
Percentile
Sum
Por ejemplo, si los datos de entrada son del tipo de datos entero y usa una operación de multiplicación, los datos resultantes podrían ser del tipo de datos bigint. De igual modo, cuando el tipo de datos de entrada es Decimal con una precisión de 18 dígitos, el resultado de la operación de multiplicación podría ser grande y dentro del tipo de datos Decimal con una precisión de 28 dígitos.