Cuando empezás a trabajar con SQL, una de las primeras necesidades que aparece es resumir información. No siempre queremos ver cada fila individual, sino responder preguntas como:
- ¿Cuántos clientes tengo en total?
- ¿Cuál es la suma de ventas en un período?
- ¿Qué ciudad genera más ingresos?
Para eso existen las funciones de agregación, y entre las más usadas están COUNT y SUM. En esta guía vas a aprender cómo funcionan, por qué es importante usar alias con ellas y cómo hacerlo paso a paso, incluso si estás dando tus primeros pasos en bases de datos.
Además, veremos ejemplos prácticos con tablas de resultados, errores comunes y buenas prácticas de nombres para alias en reportes profesionales.
1) Repaso rápido: SELECT y funciones de agregación
La sentencia SELECT es la que usamos para consultar datos.
Si tenemos una tabla pedidos, un SELECT básico devuelve todas las filas:
SELECT id, cliente_id, total
FROM pedidos;
Pero si queremos resumir datos, entran en juego las funciones de agregación.
COUNT(*)→ cuenta la cantidad de filas.SUM(columna)→ suma los valores de esa columna.- (otras funciones comunes son
AVG,MIN,MAX).
👉 Sin un alias, el resultado puede ser confuso, porque los encabezados se llaman literalmente count o sum. Por eso es buena práctica usar alias para darle nombres claros a los resultados.
2) Por qué usar alias con COUNT y SUM
Un alias es un nombre temporal para una columna o tabla en una consulta. No cambia nada en la base de datos, solo hace que el resultado sea más legible.
Ejemplo sin alias:
SELECT COUNT(*)
FROM pedidos;
Resultado:
| count |
|---|
| 152 |
Ejemplo con alias:
SELECT COUNT(*) AS total_pedidos
FROM pedidos;
Resultado:
| total_pedidos |
|---|
| 152 |
👉 Con el alias, cualquier persona entiende inmediatamente que el número corresponde al total de pedidos.
3) COUNT: contar filas y valores
3.1 Contar todas las filas
SELECT COUNT(*) AS total_clientes
FROM clientes;
Devuelve la cantidad total de registros en la tabla clientes.
3.2 Contar valores no nulos en una columna
SELECT COUNT(email) AS clientes_con_email
FROM clientes;
COUNT(columna)ignora los valoresNULL.- Esto te permite saber cuántos clientes tienen email cargado, por ejemplo.
3.3 COUNT con GROUP BY
El verdadero poder aparece cuando combinamos COUNT con GROUP BY.
SELECT ciudad,
COUNT(*) AS clientes_por_ciudad
FROM clientes
GROUP BY ciudad
ORDER BY clientes_por_ciudad DESC;
Resultado (ejemplo):
| ciudad | clientes_por_ciudad |
|---|---|
| Madrid | 45 |
| Barcelona | 30 |
| Valencia | 15 |
👉 El alias clientes_por_ciudad convierte el resultado en un informe entendible.
4) SUM: sumar valores numéricos
4.1 Suma total
SELECT SUM(total) AS ventas_totales
FROM pedidos;
Resultado:
| ventas_totales |
|---|
| 25340.75 |
4.2 SUM con GROUP BY
SELECT ciudad,
SUM(total) AS ventas_ciudad
FROM pedidos p
JOIN clientes c ON p.cliente_id = c.id
GROUP BY ciudad
ORDER BY ventas_ciudad DESC;
Resultado (ejemplo):
| ciudad | ventas_ciudad |
|---|---|
| Madrid | 9500.50 |
| Barcelona | 7200.00 |
| Valencia | 2650.25 |
👉 Alias como ventas_ciudad explican claramente la métrica.
4.3 SUM con condiciones (filtros en WHERE)
SELECT SUM(total) AS ventas_2024
FROM pedidos
WHERE fecha >= '2024-01-01' AND fecha < '2025-01-01';
Esto devuelve el total de ventas en el año 2024.
5) COUNT y SUM combinados
Muchas veces necesitamos ambos.
SELECT ciudad,
COUNT(*) AS pedidos,
SUM(total) AS ventas,
ROUND(AVG(total),2) AS ticket_promedio
FROM pedidos p
JOIN clientes c ON p.cliente_id = c.id
GROUP BY ciudad
ORDER BY ventas DESC;
Resultado (ejemplo):
| ciudad | pedidos | ventas | ticket_promedio |
|---|---|---|---|
| Madrid | 320 | 9500.50 | 29.70 |
| Barcelona | 210 | 7200.00 | 34.28 |
| Valencia | 85 | 2650.25 | 31.18 |
👉 Con alias descriptivos, el reporte queda legible como tabla de negocio.
6) Errores comunes al usar alias con COUNT y SUM
- Olvidar el alias → el encabezado aparece como
countosum, lo que es poco claro. - Usar palabras reservadas como alias (ej.
sum,order) → puede causar errores de sintaxis. - Alias ambiguos o genéricos como
c1,dato,total→ generan confusión al leer el reporte. - Usar alias en WHERE → recordá que SQL primero evalúa
WHERE, y recién después define los alias enSELECT. Si necesitás filtrar por alias, usáHAVINGo una subconsulta.
Ejemplo incorrecto:
SELECT SUM(total) AS ventas
FROM pedidos
WHERE ventas > 1000; -- ❌ ERROR
Ejemplo correcto con HAVING:
SELECT cliente_id,
SUM(total) AS ventas
FROM pedidos
GROUP BY cliente_id
HAVING SUM(total) > 1000; -- ✅ CORRECTO
7) Buenas prácticas para nombrar alias con COUNT y SUM
- Usar snake_case (
ventas_totales,clientes_por_ciudad). - Usar nombres de negocio en lugar de técnicos: mejor
ventas_totalesquesum_total. - Alias únicos en cada consulta.
- Evitar palabras reservadas y alias duplicados.
- Si el cálculo incluye filtros de tiempo o región, reflejarlo en el alias (
ventas_2024,clientes_activos,ventas_madrid).
8) Subconsultas y alias con COUNT y SUM
Cuando la lógica es más compleja, podemos usar subconsultas.
SELECT c.nombre,
agg.ventas_cliente
FROM clientes c
JOIN (
SELECT cliente_id,
SUM(total) AS ventas_cliente
FROM pedidos
GROUP BY cliente_id
) AS agg ON agg.cliente_id = c.id
ORDER BY agg.ventas_cliente DESC;
👉 El alias de la subconsulta (agg) y el alias de la columna (ventas_cliente) hacen que la consulta se lea fácil.
9) Funciones de agregación + alias en reportes completos
Ejemplo: Top 10 clientes por ventas.
SELECT c.id AS cliente_id,
c.nombre AS cliente,
COUNT(p.id) AS pedidos,
SUM(p.total) AS ventas_totales
FROM clientes c
JOIN pedidos p ON p.cliente_id = c.id
GROUP BY c.id, c.nombre
ORDER BY ventas_totales DESC
LIMIT 10;
Resultado simplificado:
| cliente_id | cliente | pedidos | ventas_totales |
|---|---|---|---|
| 5 | Elsa | 4 | 900.00 |
| 3 | Carla | 2 | 720.00 |
| 1 | Ana | 2 | 440.00 |
10) Diferencias entre motores SQL al usar alias
- MySQL/MariaDB:
ASes opcional, pero se recomienda por claridad. - PostgreSQL: mismo comportamiento, alias con comillas dobles
"alias con espacios". - SQL Server: se pueden usar corchetes
[Alias]. - Oracle: requiere comillas dobles si el alias tiene espacios o mayúsculas.
👉 Consejo universal: usá AS + alias en snake_case → es legible, portable y profesional.
11) Resumen final y checklist
COUNT= contar filas o valores no nulos.SUM= sumar valores numéricos.- Alias hacen que el reporte sea entendible para cualquier persona.
- Usá nombres descriptivos, consistentes y en estilo uniforme.
- Para filtrar sobre agregados, usá
HAVING. - Para reportes complejos, usá subconsultas o CTE con alias claros.
📚 Artículos relacionados
- Cómo usar alias en SQL para simplificar consultas SELECT con ejemplos
Guía paso a paso para principiantes donde aprenderás a usar alias en combinación con SELECT, con ejemplos prácticos y resultados claros. - Buenas prácticas para nombrar columnas y tablas con alias en SQL
Recomendaciones claras y ejemplos detallados para elegir alias descriptivos, consistentes y fáciles de entender en tus consultas SQL. - Cómo aplicar alias en subconsultas SQL para mejorar la legibilidad
Explicación detallada y práctica de cómo usar alias en subconsultas para que las consultas sean más claras, organizadas y fáciles de mantener. - Errores comunes al trabajar con alias en SQL y cómo evitarlos
Lista de errores frecuentes al usar alias en SQL con soluciones claras para evitarlos y escribir consultas sin fallos.
