sql >> Base de Datos >  >> RDS >> MariaDB

Función AVG() en MariaDB

En MariaDB, el AVG() La función devuelve el valor promedio de la expresión dada.

El DISTINCT La opción se puede usar para devolver el promedio de los distintos valores (es decir, eliminar los duplicados antes de calcular el promedio).

NULL los valores se ignoran.

Datos de muestra

Supongamos que tenemos una tabla con los siguientes datos:

SELECT 
    VendorId,
    ProductName,
    ProductPrice 
FROM Products;

Resultado:

+----------+---------------------------------+--------------+
| VendorId | ProductName                     | ProductPrice |
+----------+---------------------------------+--------------+
|     1001 | Left handed screwdriver         |        25.99 |
|     1001 | Right handed screwdriver        |        25.99 |
|     1001 | Long Weight (blue)              |        14.75 |
|     1001 | Long Weight (green)             |        11.99 |
|     1002 | Sledge Hammer                   |        33.49 |
|     1003 | Chainsaw                        |       245.00 |
|     1003 | Straw Dog Box                   |        55.99 |
|     1004 | Bottomless Coffee Mugs (4 Pack) |         9.99 |
+----------+---------------------------------+--------------+

Ejemplo

Podemos usar la siguiente consulta para obtener el promedio de todos los precios.

SELECT AVG(ProductPrice)
FROM Products;

Resultado:

52.898750

En este caso, la información de precios se almacena en el ProductPrice columna, por lo que lo pasamos como argumento a AVG() función, que luego calculó el promedio y devolvió el resultado.

Resultados filtrados

El AVG() opera en las filas devueltas por la consulta. Entonces, si filtra los resultados, el resultado de AVG() reflejará eso.

SELECT AVG(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Resultado:

19.680000

En este caso, 19,680000 es el precio medio de todos los productos ofrecidos por el proveedor especificado.

El DISTINCT Palabra clave

Puedes usar el DISTINCT palabra clave con AVG() para calcular sólo valores distintos. Es decir, si hay valores duplicados, se tratan como un solo valor.

Ejemplo:

SELECT 
    AVG(ProductPrice) AS "All",
    AVG(DISTINCT ProductPrice) AS "Distinct"
FROM Products;

Resultado:

+-----------+-----------+
| All       | Distinct  |
+-----------+-----------+
| 52.898750 | 56.742857 |
+-----------+-----------+

En este caso, dos artículos comparten el mismo precio (el destornillador para zurdos y el destornillador para diestros tienen un precio de 25,99). Por lo tanto, el AVG() función, cuando se usa con DISTINCT palabra clave, trata ambos valores como uno solo y calcula su resultado en consecuencia.

Funciones de ventana

El AVG() La función se puede utilizar en funciones de ventana. Ver SQL AVG() para principiantes para ver un ejemplo de esto.