Funciones de agregación en PostgreSQL son herramientas fundamentales para realizar cálculos sobre un conjunto de datos y devolver resultados resumidos en una única fila. Estas funciones son ampliamente utilizadas en consultas para obtener promedios, sumas, conteos, máximos, mínimos y más, facilitando el análisis y la manipulación de grandes volúmenes de datos.
Cada función de agregación en PostgreSQL está diseñada para simplificar tareas comunes en bases de datos, como generar reportes o calcular métricas clave. Por ejemplo, puedes utilizarlas para determinar el total de ventas, el promedio de calificaciones o la fecha más reciente en un conjunto de registros.
En este artículo, te mostraré las funciones más populares, explicando cómo funcionan y proporcionándote ejemplos prácticos para implementarlas en tus proyectos. Haz clic en el nombre de cada función para ver detalles específicos y aprender a usarlas de manera eficiente.
Para más información, puedes consultar la documentación oficial de PostgreSQL sobre funciones de agregación.
Funciones de agregación
Función | Descripción |
---|---|
ANY_VALUE | Agrega un campo no agregable. |
AVG | Calcula la media de un conjunto de datos |
COUNT | Cuenta los registros de un conjunto de datos |
MAX | Devuelve el máximo de un conjunto de datos |
MIN | Devuelve el mínimo de un conjunto de datos |
SUM | Devuelve la suma de un conjunto de datos |
A tener en cuenta
Cuando usas funciones de agregación en PostgreSQL las puedes utilizar en el SELECT o en la cláusula HAVING, pero nunca en el WHERE. La cláusula HAVING actual igual que el WHERE pero admitiendo funciones de agregación.
Al usar una función de agregación, si tienes en el SELECT más campos al margen de la agregación, debes utilizar la cláusula GROUP BY indicando el resto de campos que no utilizan la agregación (a excepción de la función any_value), aquellos por los que quieres agrupar.
Ejemplo correcto:
select sum(sueldo) from empleados; select nombre, apellidos, sum(sueldo) from empleados group by nombre, apellidos;
Ejemplo incorrecto:
select nombre, apellidos, sum(sueldo) from empleados;