La función AVG() nos devuelve el promedio de una columna numérica. O sea que halla la suma de esa columna y luego la divide por la cantidad de filas que no sean NULL, es decir que si en una fila hay NULL no la utiliza en el cálculo.
Para entender mejor a la función AVG() consideremos una tabla que tiene 7 filas, las cuales en una columna numérica tienen estos valores:
20 40 10 20 NULL NULL NULLEjemplo 1:
El promedio según la función AVG() es:
SELECT AVG(MiColumna) FROM MiTabla
90 / 4 = 22,5
Se dividió por 4 y no por 7, porque las filas con NULL para la función AVG() son inexistentes.
Ejemplo 2:
En la misma tabla anterior queremos hallar el promedio de esa columna pero esta vez considerando a las filas que tienen NULL, en ese caso deberíamos escribir:
SELECT SUM(MiColumna) / COUNT(*) FROM MiTabla
90 / 7 = 12,8571
Ejemplo 3:
Si lo que nos interesa es hallar el promedio considerando solamente los valores distintos entonces escribiríamos:
SELECT AVG(DISTINCT MiColumna) FROM MiTabla
70 / 3 = 23,3333
Hay 3 valores distintos (20, 40, 10) porque uno de ellos (20) está repetido y por lo tanto no se lo usa ni en la suma ni en la cantidad de filas. La suma de los valores distintos (20 + 40 + 10) es 70 y la cantidad de valores distintos es 3, por lo tanto el promedio es 70 / 3 = 23,3333
Artículos relacionados:
Comentarios recientes