Data Exploration | SQL | Data Visualization | Tableau
03 – 2023
En este proyecto se realizó un análisis para identificar el comportamiento del Covid-19 y su vacunación en el mundo. En el proyecto se aplican habilidades de Uniones de Tablas, Tablas Temporales, expresiones comunes de tablas (CTE’s) con particiones; además del uso de Tableau para generar Mapas, Bubble Charts y Threemaps.
La data fue extraída de Our Worl in Data, actualizada al 21 de abril del 2021. Estaba dividida en data de mortalidad y data de vacunación.
La Exploración de los datos fue efectuada en Microsoft SQL Server. El ejemplo de una consulta realizada es la siguiente.
--- CTE and PARTITION
--- Generamos la CTE
With cteDeaVac (location, date, population, VaccinationsPerDay, RollingVaccinations) --- Columnas de CTE
as
(
SELECT
Dea.location,
CONVERT(date,
Dea.date) AS date,
Dea.population,
Vac.new_vaccinations as VaccinationsPerDay,
SUM(CONVERT(int,Vac.new_vaccinations)) OVER (PARTITION by Dea.location Order by Dea.location, Dea.date) AS RollingVaccinations --- Particion para no sumar sobre todos los datos
FROM SQLDataExploration.dbo.CovidDeaths Dea --- 1era tabla
JOIN SQLDataExploration.dbo.CovidVaccinations Vac --- 2da tabla
On Dea.location = Vac.location
and Dea.date = Vac.date --- Relaciones entre tablas
WHERE Dea.continent is not Null --- continent Null son datos acumulados por continentes
)
La consulta consiste en generar la CTE, indicando las columnas de las que estará compuesta. Para posteriormente seleccionar los valores que formaran esas columnas. La data proviene de dos tablas, abreviadas como Dea y Vac que se relacionan por fecha y locación. La partición se realiza para la columna RollingVaccinations, columna que muestra por locación (país), como se van acumulando la cantidad de vacunas realizadas conforme la fecha avanza.
Con la CTE generada, se realiza la consulta sobre la CTE.
--- Selecionamos la CTE
Select *, ROUND( 100*( RollingVaccinations / population ) ,2) AS PercentageVaccinationsPerPopulation --podemos realizar campos calculados adicionales, sin duplicar los calculos de RollingVaccinations
From cteDeaVac
WHERE RollingVaccinations is not Null --en CTE es facil remover los nulls de los campos calculados
AND location LIKE '%xico'
ORDER BY 1,2
Se crea un campo calculado sobre la columna nueva RollingVaccinations. Con otros métodos, se tiene que volver a especificar los cálculos que definen a RollingVaccinations, lo que incrementa la cantidad de cálculos que realiza el computador. Faltaría profundizar en cómo se constituye el método CTE respecto a otros métodos. Para determinar si el coste computacional de no duplicar datos genera ventajas sobre el uso de otros métodos.
El campo calculado PercentageVaccinationsPerPopulation, muestra la evolución en el tiempo del porcentaje de población máxima vacunada. En la siguiente imagen vemos el resultado de la consulta. Tal que observamos como el porcentaje de población acunada se incrementa conforme se realizan las vacunas diarias. Los NULLs observados significan que ese día no se realizaron vacunas, por eso el porcentaje de vacunación permanece estable esos días.
Finalmente, con los resultados obtenidos se generó un Dashboard en Tableau.
Se identifica que el continente que presentaba el mayor número de casos de Covid-19 era Europa. A pesar de que, por país, lideraban Brasil y USA. Pero, a diferencia de Brasil, en USA se realizó una fuerte campaña de vacunación. Al punto de que, para mayo de 2021, ya se habían aplicado en USA más de 227 millones de vacunas, el 68.8% de su población.
A continuación, puedes consultar el código y el dashboard del proyecto.