Consultas Agregadas
Las consultas agregadas realizan cálculos sobre un conjunto de datos en una tabla de base de datos.
En lugar de devolver una lista detallada de registros, permiten obtener información resumida y estadística.
Entre las funciones más comunes se encuentran:
- SUM → suma total de valores de una columna.
- COUNT → número de registros.
- AVG → promedio de valores.
- MAX → valor máximo.
- MIN → valor mínimo.
Estas funciones suelen combinarse con la cláusula GROUP BY, que agrupa resultados en función de una o más columnas, y opcionalmente con HAVING para aplicar condiciones sobre los grupos.
📌 Estructura general
Section titled “📌 Estructura general”SELECT [ALL | DISTINCT ] [TOP <n> [WITH TIES]] <nombre_campo> [{,<nombre_campo>}] [{,<funcion_agregado>}]FROM <nombre_tabla> | <nombre_vista> [{,<nombre_tabla> | <nombre_vista>}][WHERE <condicion> [{ AND | OR <condicion>}]][GROUP BY <nombre_campo> [{,<nombre_campo >}]][HAVING <condicion> [{ AND | OR <condicion>}]][ORDER BY <nombre_campo> | <indice_campo> [ASC | DESC] [{,<nombre_campo> | <indice_campo> [ASC | DESC]}]]🔹 GROUP BY
Section titled “🔹 GROUP BY”Agrupa los resultados de la consulta según una o más columnas.
SELECT c.razonSocial AS [Cliente], SUM(p.importe) AS [Gasto total]FROM Pedidos AS pINNER JOIN Clientes AS c ON p.codCliente = c.IDGROUP BY c.razonSocialORDER BY [Gasto total] DESC👉 Esto agrupa las ventas por cliente y muestra el gasto total de cada uno, ordenando de mayor a menor.
🔹 HAVING
Section titled “🔹 HAVING”Filtra los grupos resultantes de una consulta agrupada.
SELECT c.razonSocial AS [Cliente], SUM(p.importe) AS [Gasto total]FROM Pedidos AS pINNER JOIN Clientes AS c ON p.codCliente = c.IDGROUP BY c.razonSocialHAVING SUM(p.importe) > 4700ORDER BY [Gasto total] ASC👉 Muestra solo clientes cuyo gasto total supere los 4700 €, ordenando de menor a mayor.
Importante
WHERE filtra registros antes de la agregación.
HAVING filtra grupos después de la agregación.
🔹 ORDER BY
Section titled “🔹 ORDER BY”Ordena los resultados en base a una o más columnas (ascendente ASC o descendente DESC).
SELECT c.razonSocial AS [Cliente], SUM(p.importe) AS [Gasto total]FROM Pedidos AS pINNER JOIN Clientes AS c ON p.codCliente = c.IDGROUP BY c.razonSocialHAVING SUM(p.importe) > 4700ORDER BY [Gasto total] DESC👉 Ordena los resultados de mayor a menor gasto total.
🔹 Funciones agregadas
Section titled “🔹 Funciones agregadas”Las funciones de agregación más utilizadas son:
- MAX → devuelve el valor máximo de una columna.
Ejemplo: la nota más alta en un listado de estudiantes. - MIN → devuelve el valor mínimo.
Ejemplo: el salario más bajo en una tabla de empleados. - COUNT → cuenta filas o registros que cumplen una condición.
Ejemplo: número de ventas de un producto. - SUM → suma de valores.
Ejemplo: total de productos vendidos. - AVG → promedio.
Ejemplo: media de calificaciones en una tabla de estudiantes.
Estas funciones permiten resumir y analizar datos fácilmente dentro de grandes volúmenes de información.