Consultas · microlección

Alias en subconsultas

Pon nombre a un resultado intermedio para tratarlo como una tabla clara dentro de la consulta exterior.

Lectura: 5–7 minEjemplo ejecutadoPráctica con pistas
Contenido de esta guía

Qué representa el alias

Una subconsulta escrita dentro de FROM produce un resultado tabular temporal. El alias le da un nombre para que la consulta exterior pueda referirse a sus columnas.

Este patrón se denomina también tabla derivada. El alias no crea una tabla física ni conserva datos después de terminar la sentencia.

Forma general

Subconsulta en FROM
SELECT resumen.columna
FROM (
  SELECT expresion AS columna
  FROM tabla
) AS resumen;

El estándar SQL exige un alias para una subconsulta situada en FROM, pero la obligatoriedad práctica cambia entre motores. PostgreSQL actual permite omitir tanto AS como el alias de esa subconsulta, mientras que otros motores exigen un nombre para la tabla derivada. Incluso donde es opcional, un alias explícito hace visible dónde termina el resultado interior y permite calificar sus columnas con claridad.

Ejemplo guiado

Clientes con dos o más pedidos no cancelados
SELECT c.nombre AS cliente,
       r.total_pedidos,
       ROUND(r.importe_total, 2) AS importe_total
FROM clientes AS c
INNER JOIN (
  SELECT cliente_id,
         COUNT(*) AS total_pedidos,
         SUM(total) AS importe_total
  FROM pedidos
  WHERE estado <> 'cancelado'
  GROUP BY cliente_id
) AS r
  ON r.cliente_id = c.id
WHERE r.total_pedidos >= 2
ORDER BY importe_total DESC;
Primeras filas del resultado comprobado en SQLite
clientetotal_pedidosimporte_total
Sara Gómez21112.0
Ana Torres2377.4
Hugo Castro2268.0

La subconsulta r resume los pedidos por cliente. La consulta exterior ya no necesita recalcular el conteo y la suma: usa r.total_pedidos y r.importe_total como columnas de una tabla.

Errores frecuentes

Exponer dos columnas con el mismo nombre

Si la tabla exterior y la subconsulta tienen una columna llamada id, escribir solo id puede resultar ambiguo. Califica la referencia: c.id o r.cliente_id.

Evita también SELECT * dentro de la subconsulta. Seleccionar solo las columnas necesarias documenta la interfaz del resultado derivado y reduce sorpresas cuando cambie la tabla base.

Comprueba lo aprendido

Intermedia · tabla derivada

Filtra productos por ventas resumidas

Crea una subconsulta llamada ventas que calcule las unidades vendidas por producto. Únela con productos y muestra solo los productos con tres o más unidades.

Compatibilidad entre motores

Las tablas derivadas están disponibles en PostgreSQL, MySQL, SQLite y SQL Server, pero no comparten exactamente las reglas de alias. El estándar SQL pide un alias; PostgreSQL actual permite omitirlo y documenta que escribirlo sigue siendo una buena práctica para código portable. Otros dialectos pueden exigirlo. Para AprenderSQL.es usamos siempre un nombre explícito porque documenta el resultado intermedio y permite escribir referencias como ventas.unidades sin ambigüedad. En consultas correlacionadas, distingue este patrón de los alias que permiten a una subconsulta referirse a filas de la consulta exterior.

Qué debes recordar

  • Una subconsulta de FROM se comporta como una tabla temporal de la sentencia.
  • El alias nombra esa tabla derivada.
  • Califica sus columnas para evitar ambigüedades.
  • Selecciona únicamente las columnas que necesita la consulta exterior.

Conceptos relacionados

Fuentes técnicas consultadas