sirve que promedio para column avg sql casting floating-point average

que - mysql avg count



SQL AVG devolviendo un int (3)

El casting es más seguro, pero ...AVG(1.0 * e.employee_level)... podría hacerlo también, y puede ser más legible.

En una de mis consultas, parece que la función AVG está devolviendo un int.

select ..., AVG(e.employee_level)avg_level

¿Cómo consigo que devuelva valores de punto flotante? Intenté avg_level pero todas mis filas para avg_level seguían siendo enteros.


El tipo devuelto de AVG depende del tipo evaluado de la expresión pasada a la función.

Por ejemplo, si desea que su resultado sea float , debe asegurarse de que su columna o tipo de expresión sea float .


Intenta hacerlo así:

AVG(Cast(e.employee_level as Float)) as avg_level

También encontré this tema en el que puedes encontrar otro enfoque, pero no lo he utilizado y no sé exactamente si funciona o no.