UNION vs UNION ALL
Parte da seção Além do Básico do Journey de SQL da Coddy. Lição 16 de 27.
Você conheceu UNION em Fundamentals: ele empilha dois conjuntos de resultados um sobre o outro. Por padrão, ele também remove duplicatas, o que custa uma ordenação extra.
SELECT name FROM authors
UNION
SELECT name FROM editorsUNION ALL faz o mesmo empilhamento, mas mantém as duplicatas. É mais rápido e quase sempre é o que você quer quando sabe que os dois lados não podem produzir a mesma linha ou quando realmente quer contar cada ocorrência.
SELECT name FROM authors
UNION ALL
SELECT name FROM editorsAmbos os lados devem retornar o mesmo número de colunas, na mesma ordem, com tipos compatíveis.
Desafio
FácilTabelas e colunas disponíveis:
online_orders:order_no,amountretail_orders:ticket_no,total
As duas tabelas registram pedidos de canais diferentes, com nomes de colunas diferentes. Retorne uma lista combinada de todos os pedidos com as colunas:
channel:'online'ou'retail'order_id:order_nodo canal online,ticket_nodo canal de varejoamount: o total do pedido (deamountoutotal)
Mantenha todas as linhas (sem deduplicação). Ordene por amount em ordem decrescente.
Experimente você mesmo
-- dois SELECTs alinhados às mesmas 3 colunas, unidos por UNION ALL
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Além do Básico
Pratique por conta própria: Playground de SQL