28% de descuento del curso en SQL Server

Estrada Web Group Estrada Web Group
Obtener promedio en SQL
Estrada Web Group
Estrada Web Group
Estrada Web Group Estrada Web Group
Calificar:
09 junio SQL

¿Cómo obtener el promedio en SQL Server con la función AVG()?

¿Cómo obtener el promedio en SQL Server con la función AVG()?

En este tutorial, aprenderás a usar la función AVG() de SQL Server para calcular el valor promedio de un grupo de valores.

Introducción a la función AVG() de SQL Server

La función AVG() de SQL Server es una función agregada que devuelve el valor promedio de un grupo de valores.

A continuación, se ilustra la sintaxis de la función AVG():

AVG([ALL | DISTINCT] expression)

Sintaxis:

  • ALL indica a la función AVG() que tome todos los valores para realizar el cálculo y obtener el promedio. ALL es el valor por defecto.
  • DISTINCT indica a la función AVG() que opere solo con valores únicos.
  • expression es una expresión válida que devuelve un valor numérico.

La función AVG() ignora los valores NULL.

Función AVG() de SQL Server: ALL contra DISTINCT

Las siguientes declaraciones crean una nueva tabla, insertan algunos valores en la tabla y consultan datos en ella:

CREATE TABLE t(val dec(10,2));
INSERT INTO t(val) VALUES(1),(2),(3),(4),(4),(5),(5),(6);
SELECT val FROM t;

El siguiente ejemplo usa la función AVG() calcula el promedio de todos los valores en la tabla t:

SELECT AVG(ALL val) FROM t;

Resultado:

avg_all
----------
3.750000

En este ejemplo, usamos el modificador ALL, por lo tanto, la función promedio considera los ocho valores en la columna val en el cálculo:

(1 + 2 + 3 + 4 + 4 + 5 + 5 + 6) /  8 = 3.75

La siguiente instrucción usa la función AVG() con el modificador DISTINCT:

SELECT  AVG(DISTINCT val) FROM t;

Resultado:

avg_distinct
------------
3.500000

Debido al modificador DISTINCT, la función AVG() realiza el cálculo en valores que son distintos:

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 3.5

Ejemplos de la función AVG() de SQL Server

Veamos algunos ejemplos para ver cómo funciona la función AVG() en la base de datos de prueba.

A) Ejemplo simple de SQL Server AVG()

El siguiente ejemplo devuelve el precio de lista promedio de todos los productos:

SELECT AVG(list_price) FROM production.products;

En este ejemplo, la función AVG() devolvió un valor único para toda la tabla.

Aquí está el resultado:

SQL Server AVG function example

B) AVG() de SQL Server con GROUP BY

Si utiliza la función AVG() con una cláusula GROUP BY, la función AVG() devuelve un valor único para cada grupo en lugar de un valor único para toda la tabla.

El siguiente ejemplo devuelve el precio de lista promedio para cada categoría de producto:

SELECT category_name, CAST(ROUND(AVG(list_price),2) AS DEC(10,2)) avg_product_price
FROM production.products p
INNER JOIN production.categories c ON c.category_id = p.category_id
GROUP BY category_name
ORDER BY category_name;

La siguiente imagen muestra el resultado:

Ejemplo de la funcion AVG de sql server con GROUP BY

C) AVG() de SQL Server con la cláusula HAVING

Vea el siguiente ejemplo:

SELECT brand_name, CAST(ROUND(AVG(list_price),2) AS DEC(10,2))  avg_product_price
FROM production.products p
INNER JOIN production.brands c ON c.brand_id = p.brand_id
GROUP BY brand_name
HAVING AVG(list_price) > 500
ORDER BY avg_product_price;

Resultado:

SQL Server AVG function with HAVING

En este ejemplo:

  • Primero, la cláusula GROUP BY divide los productos por marcas en grupos.
  • En segundo lugar, la función AVG() calcula el precio de lista promedio para cada grupo.
  • En tercer lugar, la cláusula HAVING elimina las marcas donde cuyo precio de lista promedio es menor a 500.

En este tutorial, aprendiste a usar la función AVG() de SQL Server para calcular el valor promedio de un conjunto de valores.

Compartir:

Cargando...
Descarga el código fuente

Obten el código del sistema de gestión de proyectos.

Shape