SQL UNION
On Novembro 16, 2021 by adminComeçando aqui? Esta lição é parte de um tutorial completo sobre o uso de SQL para Análise de Dados. Veja o início.
Nesta lição vamos cobrir:
- O operador SQL UNION
- Problemas de prática
O operador SQL UNION
Reuniões SQL permitem combinar dois conjuntos de dados lado a lado, mas UNION
permite empilhar um conjunto de dados em cima do outro. Colocando de forma diferente, UNION
permite escrever dois conjuntos de dados separados SELECT
e ter os resultados de um conjunto de dados exibidos na mesma tabela que os resultados do outro conjunto de dados.
Vamos experimentar com os dados de investimento do Crunchbase, que foram divididos em duas tabelas para os propósitos desta lição. A consulta seguinte irá exibir todos os resultados da primeira parte da consulta, depois todos os resultados da segunda parte da mesma tabela:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Nota que UNION
apenas anexa valores distintos. Mais especificamente, quando você usa UNION
, o conjunto de dados é anexado, e quaisquer linhas da tabela anexada que são exatamente idênticas às linhas da primeira tabela são descartadas. Se você gostaria de anexar todos os valores da segunda tabela, use UNION ALL
. Você provavelmente usará UNION ALL
com muito mais frequência do que UNION
. Neste caso particular, não há linhas duplicadas, então UNION ALL
produzirá os mesmos resultados:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
SQL tem regras estritas para anexar dados:
- As tabelas devem ter o mesmo número de colunas
- As colunas devem ter os mesmos tipos de dados na mesma ordem que a primeira tabela
Embora os nomes das colunas não tenham que ser necessariamente os mesmos, você verá que eles tipicamente são. Isto é porque a maioria dos casos em que você quer usar UNION
envolve costurar diferentes partes do mesmo conjunto de dados (como é o caso aqui).
Desde que você esteja escrevendo duas frases separadas SELECT
, você pode tratá-las de forma diferente antes de anexar. Por exemplo, você pode filtrá-las diferentemente usando diferentes WHERE
cláusulas.
Afiar suas habilidades SQL
Problema de prática
Escreva uma consulta que anexe os dois conjuntos de dados acima (incluindo valores duplicados). Filtre o primeiro conjunto de dados apenas para empresas com nomes que comecem com a letra “T”, e filtre o segundo para empresas com nomes que comecem com “M” (ambos não sensíveis a maiúsculas e minúsculas). Inclua apenas as colunas company_permalink
, company_name
, e investor_name
.
Experimente Veja a resposta
Para um pouco mais de desafio:
Problema de prática
Escreva uma consulta que mostre 3 colunas. A primeira indica de qual conjunto de dados (parte 1 ou 2) os dados vêm, a segunda mostra o status da empresa, e a terceira é uma contagem do número de investidores.
Dica: você terá que usar a tabela tutorial.crunchbase_companies
assim como as tabelas de investimentos. E você vai querer agrupar por status e conjunto de dados.
Experimente Ver a resposta
Deixe uma resposta