UNION vs UNION ALL

La comparación sql union versus union all aparece al apilar resultados de dos consultas compatibles en columnas y tipos.

UNION

Ejecuta ambas consultas y devuelve filas únicas, eliminando duplicados (con coste de ordenación o hash).

SELECT ciudad FROM clientes
UNION
SELECT ciudad FROM proveedores;

UNION ALL

Concatena resultados sin deduplicar. Suele ser más rápido cuando sabes que no hay solapamiento o cuando los duplicados son deseables.

SELECT producto_id, 'venta' AS origen FROM ventas_2024
UNION ALL
SELECT producto_id, 'venta' AS origen FROM ventas_2025;

Cuándo usar cada una

  • UNION: listados únicos (por ejemplo catálogo combinado).
  • UNION ALL: métricas apiladas por periodo o logs donde cada fila cuenta.