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 ))