Las funciones de agregación en SQL son herramientas poderosas que permiten realizar cálculos sobre un conjunto de valores y devolver un solo valor. Estas funciones son esenciales para resumir y analizar datos en una base de datos. En PostgreSQL, las funciones de agregación más comunes incluyen COUNT
, SUM
, AVG
, MIN
, y MAX
.
Conceptos Clave
- COUNT: Cuenta el número de filas en un conjunto de resultados.
- SUM: Calcula la suma de un conjunto de valores.
- AVG: Calcula el promedio de un conjunto de valores.
- MIN: Encuentra el valor mínimo en un conjunto de valores.
- MAX: Encuentra el valor máximo en un conjunto de valores.
Ejemplos Prácticos
COUNT
La función COUNT
se utiliza para contar el número de filas que coinciden con un criterio específico.
-- Contar el número total de empleados en la tabla employees SELECT COUNT(*) AS total_employees FROM employees;
SUM
La función SUM
se utiliza para calcular la suma de un conjunto de valores.
-- Calcular la suma de los salarios de todos los empleados SELECT SUM(salary) AS total_salary FROM employees;
AVG
La función AVG
se utiliza para calcular el promedio de un conjunto de valores.
-- Calcular el salario promedio de los empleados SELECT AVG(salary) AS average_salary FROM employees;
MIN
La función MIN
se utiliza para encontrar el valor mínimo en un conjunto de valores.
-- Encontrar el salario mínimo entre los empleados SELECT MIN(salary) AS minimum_salary FROM employees;
MAX
La función MAX
se utiliza para encontrar el valor máximo en un conjunto de valores.
-- Encontrar el salario máximo entre los empleados SELECT MAX(salary) AS maximum_salary FROM employees;
Uso de Funciones de Agregación con GROUP BY
Las funciones de agregación se utilizan a menudo junto con la cláusula GROUP BY
para agrupar filas que tienen valores en común en columnas específicas y luego realizar cálculos en cada grupo.
Ejemplo con GROUP BY
-- Calcular el salario promedio por departamento SELECT department_id, AVG(salary) AS average_salary FROM employees GROUP BY department_id;
En este ejemplo, los empleados se agrupan por department_id
, y se calcula el salario promedio para cada departamento.
Ejercicios Prácticos
Ejercicio 1: Contar el Número de Empleados por Departamento
Instrucción: Escribe una consulta para contar el número de empleados en cada departamento.
Ejercicio 2: Calcular la Suma de Salarios por Departamento
Instrucción: Escribe una consulta para calcular la suma de los salarios en cada departamento.
Ejercicio 3: Encontrar el Salario Máximo y Mínimo por Departamento
Instrucción: Escribe una consulta para encontrar el salario máximo y mínimo en cada departamento.
SELECT department_id, MAX(salary) AS max_salary, MIN(salary) AS min_salary FROM employees GROUP BY department_id;
Soluciones a los Ejercicios
Solución al Ejercicio 1
Solución al Ejercicio 2
Solución al Ejercicio 3
SELECT department_id, MAX(salary) AS max_salary, MIN(salary) AS min_salary FROM employees GROUP BY department_id;
Errores Comunes y Consejos
-
Olvidar la cláusula GROUP BY: Cuando se utilizan funciones de agregación junto con columnas no agregadas, es necesario incluir la cláusula
GROUP BY
. De lo contrario, se producirá un error.-- Incorrecto: Falta la cláusula GROUP BY SELECT department_id, AVG(salary) AS average_salary FROM employees;
-
Incluir columnas no agregadas sin GROUP BY: Todas las columnas en la cláusula
SELECT
que no son parte de una función de agregación deben estar en la cláusulaGROUP BY
.-- Incorrecto: department_id no está en GROUP BY SELECT department_id, AVG(salary) AS average_salary FROM employees;
-
Usar funciones de agregación en WHERE: Las funciones de agregación no se pueden usar en la cláusula
WHERE
. En su lugar, se debe usar la cláusulaHAVING
.-- Incorrecto: Uso de función de agregación en WHERE SELECT department_id, AVG(salary) AS average_salary FROM employees WHERE AVG(salary) > 50000 GROUP BY department_id;
-- Correcto: Uso de función de agregación en HAVING SELECT department_id, AVG(salary) AS average_salary FROM employees GROUP BY department_id HAVING AVG(salary) > 50000;
Conclusión
Las funciones de agregación son herramientas esenciales para resumir y analizar datos en PostgreSQL. Al dominar COUNT
, SUM
, AVG
, MIN
, y MAX
, y comprender cómo usarlas con GROUP BY
, puedes realizar análisis complejos y obtener información valiosa de tus datos. Asegúrate de practicar con los ejercicios proporcionados y estar atento a los errores comunes para mejorar tu habilidad en el uso de funciones de agregación.
Curso de PostgreSQL
Módulo 1: Introducción a PostgreSQL
Módulo 2: Operaciones Básicas de SQL
- Creando Bases de Datos y Tablas
- Insertando Datos
- Consultando Datos
- Actualizando Datos
- Eliminando Datos
Módulo 3: Consultas Avanzadas de SQL
Módulo 4: Diseño de Bases de Datos y Normalización
Módulo 5: Características Avanzadas de PostgreSQL
Módulo 6: Ajuste de Rendimiento y Optimización
- Optimización de Consultas
- Estrategias de Indexación
- Análisis del Rendimiento de Consultas
- Vacuuming y Mantenimiento
Módulo 7: Seguridad y Gestión de Usuarios
Módulo 8: Trabajando con JSON y Características NoSQL
Módulo 9: Extensiones y Herramientas Avanzadas
- PostGIS para Datos Geoespaciales
- Búsqueda de Texto Completo
- Wrappers de Datos Externos
- PL/pgSQL y Otros Lenguajes Procedurales