Volver a la lista de artículos Artículos
Lectura de 8 minutos

Hoja de trucos de las funciones agregadas de SQL

Una guía de referencia rápida para utilizar las funciones agregadas de SQL.

Esta hoja de referencia de funciones agregadas de SQL está diseñada para acompañarle siempre que utilice SQL para el análisis de datos.

La agregación de datos es esencial para cualquier análisis de datos significativo. SQL proporciona un conjunto de funciones que le permiten incluir totales, promedios y recuentos en sus informes y extraer el valor mínimo y máximo de cualquier columna de datos.

En esta hoja de trucos, mostraremos las siguientes funciones agregadas de SQL:

  • SUM() - Devuelve el total de todos los valores.
  • AVG() - Devuelve la media de todos los valores.
  • COUNT() - Cuenta y devuelve el número de valores.
  • MIN() - Devuelve el valor más pequeño.
  • MAX() - Devuelve el valor más grande.

También mostraremos cómo utilizar funciones de agregación:

  • Con GROUP BY.
  • Para ordenar datos.
  • Como condición de filtrado.

Si nunca ha utilizado SQL, puede empezar por inscribirse en nuestro curso SQL para principiantes . Este curso es adecuado para principiantes absolutos; sus 129 ejercicios interactivos le ayudarán rápidamente a adquirir destreza y confianza. Puede aprender desde la comodidad de su casa y no necesita instalar ningún software, ya que utilizará nuestra base de datos en línea a través de su navegador.

Funciones Agregadas SQL Comunes

Todos los ejemplos de esta hoja de trucos utilizan los siguientes datos almacenados en una tabla denominada orders.

departmentcustomeritemqtytot_valuedate_paid
125Kettle1152024-01-15
118Toaster440
216Mug12182024-01-22
325Desk4120
216Dinner Plate12242024-01-22
318Office Chair2362024-01-17
120Lamp345
210Cutlery Set1302024-01-22

SUMA()

La función SUM() devuelve la suma total de una columna de números.

Ejemplo:

SELECT SUM(tot_value) 
FROM orders;

Resultado:

SUM(tot_value)
328

Para más información sobre cómo utilizar la función SUM(), consulte nuestro libro de recetas Cómo sumar valores de una columna en SQL.

Para más ejemplos de la función SUM(), consulte nuestro artículo Explicación de la función SQL SUM() con 5 ejemplos prácticos.

AVG()

La función AVG() devuelve el valor medio de una columna de números.

Ejemplo:

SELECT AVG(qty) 
FROM orders;

Resultado:

AVG(qty)
4.875

Para más información sobre cómo utilizar la función AVG(), consulte nuestro libro de recetas Cómo hallar la media de una columna numérica en SQL.

Para más ejemplos de uso de la función AVG(), consulte nuestro artículo La función SQL AVG() explicada con ejemplos.

CONTAR()

La función COUNT() devuelve el número de filas (es decir, valores) de una columna determinada. Existen tres formas diferentes de utilizar esta función.

CONTAR(*)

Esta opción le proporciona el número total de filas devueltas por su consulta.

Ejemplo:

SELECT COUNT(*) 
FROM orders;

Resultado:

COUNT(*)
8

CONTAR(nombre_columna)

Esta opción indica el número de filas de la consulta en las que la columna indicada no contiene un valor NULL.

Ejemplo:

El ejemplo muestra el número de pedidos que han sido pagados, es decir, los pedidos en los que date_paid no es NULL.

SELECT COUNT(date_paid) 
FROM orders;

Resultado:

COUNT(date_paid)
5

COUNT(DISTINCT nombre_columna)

Esta opción le da el número de valores únicos en la columna nombrada.

Ejemplo:

Mostremos el número de clientes diferentes que han realizado pedidos.

SELECT COUNT(DISTINCT customer) 
FROM orders;

Resultado:

COUNT(DISTINCT customer)
5

Para más información sobre la función COUNT(), consulte nuestro libro de recetas Cómo contar el número de filas de una tabla en SQL.

Para más ejemplos sobre el uso de la función COUNT(), vea nuestro artículo La Función de Conteo SQL Explicada con 7 Ejemplos.

Para más información sobre el uso de COUNT(DISTINCT), vea Cómo Contar Valores Distintos en SQL.

Para obtener más información sobre la diferencia entre COUNT(*), COUNT(column) y COUNT(DISTINCT), consulte ¿Cuál es la diferencia entre COUNT(*), COUNT(1), COUNT(column) y COUNT(DISTINCT)?

MIN()

La función MIN() devuelve el valor más pequeño de una columna. Esta función funciona con la mayoría de los tipos de datos, incluidos números, cadenas (la primera en orden alfabético) y fechas (es decir, la fecha más antigua).

Ejemplo:

SELECT MIN(tot_value) 
FROM orders;

Resultado:

MIN(tot_value)
15.00

Para más información sobre cómo trabajar con la función MIN(), consulte nuestro libro de recetas Cómo encontrar el valor mínimo de una columna en SQL.

Para más ejemplos de la función MIN(), consulte nuestro artículo Explicación de las funciones MIN y MAX de SQL en 6 ejemplos.

MÁX()

La función MAX() devuelve el mayor valor de una columna. Esta función funciona con la mayoría de tipos de datos, incluidos números, cadenas (la última en orden alfabético) y fechas (es decir, la fecha más reciente).

Ejemplo:

SELECT MAX(date_paid) 
FROM orders;

Resultado:

MAX(date_paid)
2024-01-24

Para obtener más información sobre cómo trabajar con la función MAX(), consulte Cómo encontrar el valor máximo de una columna numérica en SQL.

Para más ejemplos, ver Explicación de las Funciones SQL MIN y MAX en 6 Ejemplos.

Uso de Funciones Agregadas SQL con GROUP BY

En los ejemplos anteriores, los agregados se calcularon a partir de toda la tabla. Sin embargo, a menudo se necesitan agregados divididos en grupos, por ejemplo, para calcular el valor total de los pedidos por cliente o la cantidad media pedida por departamento.

En SQL, la cláusula GROUP BY crea los grupos que utilizamos para la agregación. Esta cláusula suprime las filas individuales para que el informe contenga una fila por grupo definido. Si agrupa por cliente, verá una fila por cada cliente. Esta fila contiene la información resumida que ha solicitado. Puede agrupar por más de un criterio; por ejemplo, podría agrupar los clientes por su zona geográfica para obtener los clientes de cada zona.

Para obtener más información sobre la agrupación en SQL, consulte nuestro artículo Explicación de GROUP BY en SQL.

Ejemplo:

SELECT customer, SUM(tot_value)
FROM orders
GROUP BY customer;

Resultado:

customerSUM(tot_value)
1030.00
1642.00
1876.00
2045.00
25135.00

La columna por la que está agrupando suele estar incluida en su lista SELECT, de lo contrario el resultado no tiene sentido. La lista SELECT sólo puede incluir la columna por la que está agrupando, sus funciones agregadas y valores literales. Si se enumera una columna que no se utiliza en un agregado y no se incluye en la cláusula GROUP BY, aparecerá un mensaje de error.

Puede incluir más de una función agregada en su consulta y puede agrupar por más de una columna. Enumérelos de mayor a menor, separados por comas.

Para obtener más información, consulte estos artículos:

Si necesita practicar el uso de agregados con grupos, consulte Ejercicio de SQL: 10 Ejercicios Prácticos GROUP BY con Soluciones Detalladas.

Uso de Funciones Agregadas SQL para Ordenar los Datos

Puede que desee ordenar sus resultados basándose en una columna agregada. Dado que ORDER BY se calcula después de GROUP BY, puede utilizar funciones de agregado directamente en la cláusula ORDER BY.

Ejemplo:

Es posible que desee agrupar los pedidos por cliente y, a continuación, mostrar los clientes ordenados por el valor total de sus pedidos; de este modo, el cliente con el mayor valor de pedidos aparece en la parte superior de la lista.

SELECT customer, sum(tot_value)
FROM orders
GROUP BY customer
ORDER BY sum(tot_value) DESC;

Resultado:

customerSUM(tot_value)
25135.00
1876.00
2045.00
1642.00
1030.00

Puede especificar un agregado en la cláusula ORDER BY utilizando exactamente el mismo formato que utilizó cuando lo especificó en la lista de columnas a seleccionar. La cláusula DESC ordena las filas de mayor a menor.

Para obtener más información sobre la ordenación mediante funciones de agregado, consulte estos libros de cocina SQL:

Uso de Funciones Agregadas SQL para Filtrar Datos

A veces querrá filtrar por una columna agregada. Para filtrar por un agregado, utilice la cláusula HAVING. Opcionalmente, puede utilizarla junto con la cláusula WHERE para añadir más filtros en columnas no agregadas.

Ejemplo:

Puede que desee una lista de clientes que han pagado más de un valor determinado de productos para incluirlos en ofertas especiales.

SELECT customer, SUM(tot_value)
FROM orders
WHERE date_paid IS NOT NULL
GROUP BY customer
HAVING sum(tot_value) > 30
ORDER BY customer;

Resultado:

customerSUM(tot_value)
1642.00
1836.00

Para filtrar las filas por una función agregada, debe utilizar la cláusula HAVING. La cláusula HAVING sigue inmediatamente a la cláusula GROUP BY. Opcionalmente, también puede incluir una cláusula WHERE y una cláusula ORDER BY.

Para obtener más información, consulte estos libros de cocina SQL:

Más Allá de la Hoja de Trucos de las Funciones Agregadas SQL

Si desea mejorar sus conocimientos de SQL, consulte nuestra oferta de cursos interactivos de SQL. Tenemos una amplia gama de cursos en diferentes niveles de dominio de SQL. También tenemos cursos especializados que cubren el uso de SQL en el análisis de datos.

Recomiendo especialmente nuestra ruta de aprendizaje Ejercicio de SQL . Contiene 9 cursos centrados en la práctica exhaustiva de SQL, incluidas las funciones Tipos de JOIN en SQL y agregadas. Los ejercicios se realizan sobre conjuntos de datos realistas, como una base de datos de una universidad y una tienda. También publicamos un nuevo curso de práctica de SQL en nuestra ruta Práctica mensual de SQL.

Puedes conseguir todos los cursos anteriores y más con nuestro Plan SQL Todo, para siempre. Te da acceso de por vida a todos los cursos actuales y futuros de nuestra plataforma. ¡Feliz aprendizaje!