Contenido de esta guía
Por qué nombrar un agregado
Una función como COUNT o SUM produce una columna calculada. Sin alias, el encabezado puede mostrar la expresión completa o un nombre poco útil elegido por el motor.
El alias convierte ese cálculo en una salida comprensible, por ejemplo total_pedidos o importe_total. Solo cambia el nombre del resultado de la consulta; no modifica ninguna columna de la tabla.
Sintaxis mínima
SELECT COUNT(*) AS total_filas,
SUM(importe) AS importe_total
FROM tabla;Usa nombres que describan el dato y, cuando sea necesario, su unidad o alcance: media_precio_eur, pedidos_cancelados o unidades_vendidas. Evita nombres como x, resultado o total cuando puedan resultar ambiguos.
Ejemplo guiado
SELECT estado,
COUNT(*) AS total_pedidos,
ROUND(SUM(total), 2) AS importe_total
FROM pedidos
WHERE estado <> 'cancelado'
GROUP BY estado
ORDER BY importe_total DESC;| estado | total_pedidos | importe_total |
|---|---|---|
| enviado | 9 | 1818.7 |
| pendiente | 6 | 840.3 |
total_pedidos explica el conteo y importe_total identifica la suma redondeada. El segundo alias también puede utilizarse en ORDER BY en los motores principales, lo que evita repetir toda la expresión.
Errores frecuentes
Intentar usar el alias demasiado pronto
El alias se crea en la lista de SELECT. No dependas de él en WHERE, porque el filtro se resuelve antes de producir las columnas de salida. Escribe allí la columna o expresión original.
Las reglas para reutilizar alias en GROUP BY y HAVING cambian entre motores. MySQL admite varios usos que SQL Server no permite. Para consultas portables, repite la expresión cuando exista duda y reserva el alias para la salida y ORDER BY.
Comprueba lo aprendido
Resume cobros por método
Muestra el método de pago, el número de cobros como total_pagos y la suma como importe_cobrado. Conserva métodos usados al menos dos veces y ordena por importe descendente.
pagos.metodo.COUNT(*) y SUM(importe).Solución razonada
SELECT metodo,
COUNT(*) AS total_pagos,
ROUND(SUM(importe), 2) AS importe_cobrado
FROM pagos
GROUP BY metodo
HAVING COUNT(*) >= 2
ORDER BY importe_cobrado DESC, metodo;Los alias distinguen la dimensión metodo de las dos medidas calculadas. HAVING usa la expresión original para no depender de una extensión particular del motor.
Compatibilidad entre motores
PostgreSQL, MySQL, SQLite y SQL Server admiten alias de columnas agregadas. AS suele ser opcional, pero escribirlo separa visualmente la expresión y el nombre. La reutilización del alias en otras cláusulas no es idéntica: MySQL documenta su uso en GROUP BY, ORDER BY y HAVING, mientras SQL Server limita el alias de salida a contextos como ORDER BY.
Qué debes recordar
- El alias nombra el resultado; no cambia la tabla.
- El nombre debe explicar la medida y su alcance.
ORDER BYes el lugar más portable para reutilizar un alias de salida.- En filtros y agrupaciones, comprueba las reglas del motor.