Menu
Coddy logo textTech

UNION vs UNION ALL

Parte de la sección Más allá de lo básico del Journey de SQL de Coddy — lección 16 de 27.

Conociste UNION en Fundamentos: apila dos conjuntos de resultados uno encima del otro. Por defecto, también elimina duplicados, lo que conlleva una ordenación adicional.

SELECT name FROM authors
UNION
SELECT name FROM editors

UNION ALL realiza el mismo apilamiento pero mantiene los duplicados. Es más rápido y casi siempre es lo que quieres cuando sabes que los dos lados no pueden producir la misma fila, o cuando realmente quieres contar cada ocurrencia.

SELECT name FROM authors
UNION ALL
SELECT name FROM editors

Ambos lados deben devolver el mismo número de columnas, en el mismo orden, con tipos compatibles.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • <strong>online_orders</strong>: <strong>order_no</strong>, <strong>amount</strong>
  • <strong>retail_orders</strong>: <strong>ticket_no</strong>, <strong>total</strong>

Las dos tablas rastrean pedidos de diferentes canales con diferentes nombres de columna. Devuelve una lista combinada de cada pedido con las columnas:

  • channel: 'online' o 'retail'
  • order_id: order_no de online, ticket_no de retail
  • amount: el total del pedido (de amount o total)

Mantén cada fila (sin deduplicación). Ordena por amount de forma descendente.

Hoja de referencia

UNION apila dos conjuntos de resultados y elimina duplicados (más lento). UNION ALL apila y mantiene los duplicados (más rápido):

SELECT name FROM authors
UNION ALL
SELECT name FROM editors

Ambos lados deben tener el mismo número de columnas, en el mismo orden, con tipos compatibles. Los nombres de las columnas provienen del primer SELECT.

Pruébalo tú mismo

-- dos SELECTs alineados a las mismas 3 columnas, unidos por UNION ALL
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Más allá de lo básico