Menu
Coddy logo textTech

UNION frente a 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 Fundamentals: apila dos conjuntos de resultados uno sobre otro. De forma predeterminada, también elimina los duplicados, lo que requiere una ordenación adicional.

SELECT name FROM authors
UNION
SELECT name FROM editors

UNION ALL hace el mismo apilamiento, pero conserva 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 aparición.

SELECT name FROM authors
UNION ALL
SELECT name FROM editors

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

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • online_orders: order_no, amount
  • retail_orders: ticket_no, total

Las dos tablas registran pedidos de diferentes canales con nombres de columna distintos. Devuelve una lista combinada de todos los pedidos 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)

Conserva todas las filas (sin eliminar duplicados). Ordena por amount en orden descendente.

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

Practica por tu cuenta: Playground de SQL