SQL UNION
On noviembre 16, 2021 by admin¿Cómo empezar? Esta lección es parte de un tutorial completo en el uso de SQL para el análisis de datos. Echa un vistazo al principio.
En esta lección cubriremos:
- El operador SQL UNION
- Problemas de práctica
El operador SQL UNION
Las uniones SQL le permiten combinar dos conjuntos de datos uno al lado del otro, pero UNION
le permite apilar un conjunto de datos encima del otro. Dicho de otro modo, UNION
le permite escribir dos sentencias SELECT
separadas y hacer que los resultados de una sentencia se muestren en la misma tabla que los resultados de la otra sentencia.
Probemos con los datos de inversión de Crunchbase, que se han dividido en dos tablas a efectos de esta lección. La siguiente consulta mostrará todos los resultados de la primera parte de la consulta y, a continuación, todos los resultados de la segunda parte en la misma tabla:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Nótese que UNION
sólo anexa valores distintos. Más concretamente, cuando se utiliza UNION
, se anexa el conjunto de datos y se elimina cualquier fila de la tabla anexada que sea exactamente idéntica a las filas de la primera tabla. Si desea añadir todos los valores de la segunda tabla, utilice UNION ALL
. Es probable que utilice UNION ALL
con mucha más frecuencia que UNION
. En este caso particular, no hay filas duplicadas, por lo que UNION ALL
producirá los mismos resultados:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
SQL tiene reglas estrictas para anexar datos:
- Ambas tablas deben tener el mismo número de columnas
- Las columnas deben tener los mismos tipos de datos en el mismo orden que la primera tabla
Aunque los nombres de las columnas no tienen que ser necesariamente los mismos, verá que normalmente lo son. Esto se debe a que la mayoría de los casos en los que se desea utilizar UNION
implican la unión de diferentes partes del mismo conjunto de datos (como es el caso aquí).
Dado que está escribiendo dos sentencias SELECT
separadas, puede tratarlas de manera diferente antes de anexarlas. Por ejemplo, puede filtrarlos de forma diferente utilizando distintas cláusulas WHERE
.
Afine sus habilidades SQL
Problema de práctica
Escriba una consulta que anexe los dos conjuntos de datos crunchbase_investments
anteriores (incluyendo los valores duplicados). Filtre el primer conjunto de datos para que sólo incluya empresas con nombres que empiecen por la letra «T», y filtre el segundo para que incluya empresas con nombres que empiecen por «M» (ambos no distinguen mayúsculas de minúsculas). Incluya sólo las columnas company_permalink
, company_name
y investor_name
.
Pruébelo Vea la respuesta
Para un reto un poco más grande:
Problema de práctica
Escriba una consulta que muestre 3 columnas. La primera indica de qué conjunto de datos (parte 1 o 2) provienen los datos, la segunda muestra el estado de la empresa y la tercera es un recuento del número de inversores.
Pista: tendrás que utilizar la tabla tutorial.crunchbase_companies
además de las tablas de inversiones. Y querrás agrupar por estado y conjunto de datos.
Pruébalo Ver la respuesta
Deja una respuesta