Las funciones de agregado SQL

Las funciones de agregado SQL

En esta ocasión te voy a mostrar lo que son las funciones de agregado SQL y como puedes utilizar algunas de las más comunes.


Para los ejemplos prácticos, voy a usar las bases de datos que vienen con la instalación de MySQL (world y/o sakila).

¿Qué son las funciones de agregado?

Las funciones de agregado, son funciones integradas en el propio lenguaje SQL, que sirven para realizar ciertas tareas en las consultas.

Veamos unos cuantos ejemplos prácticos en consultas para que aprendas a utilizarlas.

La función de agregado SQL COUNT()

La función de agregado COUNT() se utiliza para contar el número de registros que cumplen una determinada condición.

Por ejemplo, queremos un reporte de la tabla "countrylanguage" donde se cuente la cantidad total de países que hablan español. Entonces, usaremos la siguiente instrucción:

SELECT Language as Lenguaje, COUNT(*) AS "Cantidad" 
FROM countrylanguage 
WHERE Language = 'Spanish';

En el primer campo, seleccionamos el campo "Language" para que nos muestre el lenguaje, en el segundo campo utiliza la función de agregado COUNT() con un asterisco para que cuente todos los registros de cierta condición, la del WHERE.

El asterisco del COUNT(*), es un argumento para indicar que queremos contar todos los registros que cumplen la condición.

count sql

Ya veremos diferentes valores que le podemos pasar y para qué. De momento, quiero que aprendas su manejo básico.


La función de agregado SQL SUM()

La función de agregado SUM() se emplea para hacer la suma de los valores que hay en los registros seleccionados de un campo.

Para el ejemplo práctico, voy a sumar toda la población que tiene Brasil en la tabla "city", y la voy a devolver en un único resultado.

SELECT SUM(Population) AS "Población Brasil"
FROM city 
WHERE CountryCode = 'BRA';

Esta vez, estoy creando un campo "Población Brasil" que va a llevar la suma de toda la "Population" donde el código de país sea "BRA". Así seleccionamos solo las ciudades de Brasil y sumamos con SUM() su población.

sum sql

La función de agregado SQL MIN()

La función de agregado MIN() se utiliza para devolver el valor mínimo de una columna.

SELECT MIN(Population) AS Poblacion_Minima 
FROM city;

Aquí nos sale la población, pero solo eso. No vemos ni de qué país se trata.

funciones agregado sql

Para sacar el nombre y otros campos, se pueden hacer varias cosas, pero si lo intentas así, te va a devolver primero el primer registro de la tabla y luego la población mínima, datos que no se corresponden.

SELECT ID, Name, MIN(Population) AS Poblacion_Minima 
FROM city;
funciones agregado sql

Para arreglar esta consulta, tenemos que usar una sintaxis nueva (no vista aún en este curso). Se trata de crear una condición más compleja con la cláusula WHERE. Hacemos la operación del MIN() directamente sobre el WHERE y este obtiene el valor de manera dinámica, así no tiene un valor fijo.

SELECT ID, Name, Population
FROM city
WHERE Population = (
    SELECT MIN(Population)
    FROM city
);
min sql

Pero si te fijas bien, nos aparece una fila extra con valores NULL. No te preocupes, en realidad, esta fila no existe, la devuelve MySQL Workbench en casos especiales.

Esta fila sirve para añadir nuevos registros (si queremos).

fila de registro null mysql workbench
insert into mysql

Por el momento, no añadas nada, aún no hemos llegado a la parte de manipulación de datos en el curso.

La función de agregado MAX() de SQL

Esta función es lo contrario a la anterior (MIN()), se utiliza para obtener el valor máximo de una columna.

SELECT ID, Name, Population
FROM city
WHERE Population = (
    SELECT MAX(Population) as Poblacion_minima
    FROM city
);
función agregado max

La función de agregado AVG() de SQL

La función AVG() sirve para calcular el valor promedio de los valores de una columna.

Para el siguiente ejemplo, vamos a calcular la media de precios de los pagos efectuados por los clientes en la base de datos "sakila", tabla "payment", campo "amount".

SELECT AVG(amount) AS "Precio medio $"
FROM payment;
avg sql

La función de agregado GROUP_CONCAT() de SQL

Para terminar, veamos una función de agregado, a la cual, seguramente, no le veas gran utilidad todavía. Iremos viendo ejemplos más ilustrativos más adelante en el curso, pero de momento, te dejo un ejemplo para que sepas como funciona en su forma más básica.

En este ejemplo, utilizo GROUP_CONCAT() para mostrar un listado con todas las ciudades mediante el campo "Name" de forma "ASC" (ascendente) con el separador de ",".

Esto genera un string con todas las ciudades separadas por comas, aunque le puedes poner cualquier otro separador.

SELECT GROUP_CONCAT(Name ORDER BY Name ASC SEPARATOR ', ') AS "Listado ciudades"
FROM city;
funciones de agregado sql

No te pierdas nada del curso completo de SQL.

Por aquí tienes unos ejercicios para practicar este capítulo.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso Java Entrada anterior Introducción a las excepciones en Java
curso sql Entrada siguiente Ejercicios resueltos para practicar SQL