Las funciones agregadas, son funciones que permiten realizar operaciones sobre un conjunto de resultados devolviendo un solo valor agregado. A menudo, son utilizadas junto a la cláusula GROUP BY.

COUNT

La función COUNT, como el resto de funciones agregadas, se coloca siempre en el SELECT delante del FROM. Se utiliza para contar el número de registros. Si no lleva ninguna condición devolvería el número total de registros.

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
totalClientes
7

El resultado de la sentencia nos indica que la tabla Clientes consta de un total de 7 registros en la actualidad.

El uso de funciones agregadas no deja exenta la utilización del resto de cláusulas de una SELECT. Además, no están limitadas a una única función por sentencia, pudiéndose aplicar varias en una misma consulta.

A continuación, veremos otro ejemplo sencillo sobre la tabla Pedidos:

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
totalAlexa
2

El resultado nos indica que la tabla Pedidos contiene dos registros de dispositivos Alexa ECHO.

En las funciones agregadas, es recomendable utilizar siempre un alias para la definición de las columnas que guarden dichos valores del conjunto de resultados.

MAX

La función MAX devuelve el valor máximo del campo especificado:

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
precioMaximo
2449,5

Esta consulta nos indica que nuestro producto más caro de la tabla Pedidos tiene un valor de: 2449,50 euros.

MIN

La función MIN devuelve el valor mínimo del campo especificado:

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
precioMinimo
39,99

Esta consulta nos indica que nuestro producto más barato de la tabla Pedidos tiene un valor de: 39,99 euros.

SUM

La función SUM devuelve el valor total de la suma de una columna. Esta función es solo aplicable a campos numéricos siendo los valores NULL ignorados.

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
beneficio
17251,6

A través de esta consulta accedemos rápidamente al resultado final de la suma de todos los precios totales de la tabla Pedidos.

AVG

La función AVG devuelve el valor promedio del campo especificado. Esta función es solo aplicable a campos numéricos siendo los valores NULL ignorados.

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
precioPromedio
610,73875

Esta consulta nos indica el valor del precio promedio de la tabla Pedidos.

Para acceder a más información sobre funciones agregadas, podéis visitar la documentación de Microsoft.

GROUP BY

La cláusula GROUP BY se utiliza para agrupar los resultados de acuerdo a la columna seleccionada, devolviendo una fila de resultados para cada grupo de dicha columna. GROUP BY se utiliza a menudo junto a funciones agregadas.

En cuanto a la sintaxis, la cláusula GROUP BY se sitúa al final de la sentencia después del WHERE, pero antes del ORDER BY en caso de aplicarse ambas cláusulas.

En primer lugar, ejecutamos la siguiente SELECT de ejemplo sin añadir cláusula GROUP BY:

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
idClientes nombre apellidos
1 Fernando García Rodriguez
2 María Lopez ruiz
2 María Lopez ruiz
3 Ana Fernandez Montero
4 Luis Sanchez García
4 Luis Sanchez García
5 Alejandro Valero Martinez

Al establecerse una relación INNER JOIN entre la tabla Clientes y Pedidos, está SELECT nos permite ver que Clientes han realizado algún pedido, estando por ende, el idClientes presente en la tabla Pedidos tantas veces como pedidos realizados.

Ahora, lanzamos la misma consulta con GROUP BY para ver la diferencia en el resultado de ejecución:

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
idClientes nombre apellidos
1 Fernando García Rodriguez
2 María Lopez ruiz
3 Ana Fernandez Montero
4 Luis Sanchez García
5 Alejandro Valero Martinez

Observamos que ahora ha agrupado los registros de mismo valor, eliminando la duplicidad en la consulta.

Como ya hemos mencionado anteriormente, GROUP BY se utiliza a menudo junto a funciones agregadas para ampliar la información devuelta en la consulta:

PostgreSQL en tu navegador · Ctrl+Enter para ejecutar · los cambios se deshacen al terminar
idClientes nombre apellidos numeroPedidos gastoTotalCliente
1 Fernando García Rodriguez 1 2449,5
2 María Lopez ruiz 2 3199,78
3 Ana Fernandez Montero 1 4304,25
4 Luis Sanchez García 2 4999
5 Alejandro Valero Martinez 1 899,97

Gracias a las funciones agregadas, podemos observar el número de pedidos realizados por cada cliente y el gastoTotal de acuerdo al número de pedidos realizados.