promedio ejemplos ejemplo avg sql-server-2008-r2 int sum overflow arithmeticexception

sql-server-2008-r2 - avg - sum sql ejemplos



¿Cómo prevenir el error de desbordamiento aritmético al usar SUM en la columna INT? (3)

Estoy utilizando SQL Server 2008 R2 y tengo una columna INT donde los datos insertados nunca superan el INT máximo, pero tengo una consulta que utiliza la función SUM que cuando se ejecuta supera el límite INT máximo y arroja el error mencionado en el título.

Quiero poder ejecutar esta consulta sin cambiar el tipo de columna de INT a BIGINT .

Aquí está mi consulta:

SELECT UserId, SUM( PokemonExp ) AS TotalExp, MAX( PokemonLevel ) AS MaxPokeLevel FROM mytable GROUP BY UserId ORDER BY TotalExp DESC

Nota: La columna PokemonExp es de tipo INT .


El tipo de expresión aceptado en SUM determina el tipo de retorno.

Intenta lo siguiente:

SELECT UserId, SUM( CAST( PokemonExp AS BIGINT )) AS TotalExp, MAX( PokemonLevel ) AS MaxPokeLevel FROM mytable GROUP BY UserId ORDER BY TotalExp DESC


El tipo de expresión en SUM determina el tipo de retorno.

Intenta lo siguiente:

SELECT UserId, SUM( CAST( PokemonExp AS BIGINT )) AS TotalExp, MAX( PokemonLevel ) AS MaxPokeLevel FROM mytable GROUP BY UserId ORDER BY TotalExp DESC


No es necesario cambiar el tipo de columna a BIGINT para obtener una suma adecuada.

Simplemente CAST o CONVERT PokemonExp a BIGINT antes de realizar la SUM siguiente manera:

SUM( CAST( PokemonExp AS BIGINT ))