Uso de alias en SQL con funciones de agregación como COUNT y SUM

Imagen educativa sobre SQL que presenta la consulta SELECT COUNT(*) AS total_pedidos, SUM(total) AS ventas_totales FROM pedidos;, ilustrando cómo aplicar alias a funciones de agregación para generar resultados claros en reportes.

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 valores NULL.
  • 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):

ciudadclientes_por_ciudad
Madrid45
Barcelona30
Valencia15

👉 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):

ciudadventas_ciudad
Madrid9500.50
Barcelona7200.00
Valencia2650.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):

ciudadpedidosventasticket_promedio
Madrid3209500.5029.70
Barcelona2107200.0034.28
Valencia852650.2531.18

👉 Con alias descriptivos, el reporte queda legible como tabla de negocio.

6) Errores comunes al usar alias con COUNT y SUM

  1. Olvidar el alias → el encabezado aparece como count o sum, lo que es poco claro.
  2. Usar palabras reservadas como alias (ej. sum, order) → puede causar errores de sintaxis.
  3. Alias ambiguos o genéricos como c1, dato, total → generan confusión al leer el reporte.
  4. Usar alias en WHERE → recordá que SQL primero evalúa WHERE, y recién después define los alias en SELECT. Si necesitás filtrar por alias, usá HAVING o 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_totales que sum_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_idclientepedidosventas_totales
5Elsa4900.00
3Carla2720.00
1Ana2440.00

10) Diferencias entre motores SQL al usar alias

  • MySQL/MariaDB: AS es 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

Scroll al inicio