Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Taller de SQL - Covid-19
Taller de SQL - Covid-19
Presentado
Por
Docente
Jimmy Andres Campo
1.) Total de contagiados en todo el mundo
SELECT
SUM(`tbl_casos`.`cases`) AS `TOTA_CONTAGIADOS`
FROM
`tbl_casos`
SELECT
SUM(`tbl_casos`.`deaths`) AS `TOTAL_FALLECIDOS`
FROM
`tbl_casos`
SELECT
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`,
SUM(`tbl_casos`.`deaths`) AS `TOTAL_FALLECIDOS`,
ROUND((SUM(`tbl_casos`.`deaths`) / SUM(`tbl_casos`.`cases`)) * 100,2) AS
`PORCENTAJE_MUERTES`
FROM
`tbl_casos`
SELECT
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`,
CAST('7794798729' AS INTEGER) AS `POBLACIÓN_MUNDIAL_2020`,
ROUND((SUM(`tbl_casos`.`cases`) / 7794798729) * 100, 2) AS
`PORCENTAJE_CONTAGIOS_MUNDIAL`
FROM
`tbl_casos`
SELECT
SUM(`tbl_casos`.`deaths`) AS `TOTAL_FALLECIDOS`,
CAST('7794798729' AS INTEGER) AS `POBLACIÓN_MUNDIAL_2020`,
SUM((`tbl_casos`.`deaths`) / 7794798729) * 100 AS
`PORCENTAJE_FALLECIDOS_MUNDIAL`
FROM
`tbl_casos`
6.) Todos los países con los pacientes fallecidos ordenados de mayor a menor
SELECT
`tbl_casos`.`countriesAndTerritories` AS `PAIS`,
SUM(`tbl_casos`.`deaths`) AS `CANTIDAD_MUERTOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`
ORDER BY
2 DESC
7.) Todos los países con los pacientes contagiados ordenados de mayor a menor
SELECT
`tbl_casos`.`countriesAndTerritories`,
SUM(`tbl_casos`.`cases`) AS CANTIDAD_CONTAGIADOS
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`
ORDER BY
2 DESC
SELECT
`tbl_casos`.`countriesAndTerritories` AS `PAIS`,
SUM(`tbl_casos`.`deaths`) AS `CANTIDAD_MUERTOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`
ORDER BY
2 DESC
LIMIT 5
SELECT
`tbl_casos`.`countriesAndTerritories`,
SUM(`tbl_casos`.`cases`) AS CANTIDAD_CONTAGIADOS
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`
ORDER BY
2 DESC
LIMIT 5
from (SELECT
`tbl_casos`.`countriesAndTerritories` pais,
tbl_casos.`countryterritoryCode` code,
SUM(`tbl_casos`.`cases`) AS `total_contagiados`
FROM
`tbl_casos`
GROUP BY `tbl_casos`.`countriesAndTerritories`
order by
2 desc
)a
inner join `country` c
on
a.code = c.`Code`
order by 5 desc
11.) Todos los países con el porcentaje de contagiados que han fallecido
SELECT
`tbl_casos`.`countryterritoryCode` PAIS,
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`,
SUM(`tbl_casos`.`deaths`) AS `TOTAL_FALLECIDOS`,
ROUND(SUM(`tbl_casos`.`deaths`)/SUM(`tbl_casos`.`cases`)*100,2)
PORCENTAJE_FALLECIDOS
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countryterritoryCode`
ORDER BY 4 DESC
SELECT
`tbl_casos`.`fecha`,
SUM(`tbl_casos`.`cases`) AS TOTAL_CONTAGIADOS
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`fecha`
ORDER BY 2 ASC
13.) Cada mes con el número de contagios en todo el mundo
SELECT
`tbl_casos`.`month`,
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`month`
ORDER BY
2 ASC
SELECT
`tbl_casos`.`day`,
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`day`
ORDER BY
2 ASC
SELECT
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`day`,
ROUND(AVG(`tbl_casos`.`cases`)) AS `PROMEDIO_CONTAGIADOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`day`
ORDER BY 1,
2 ASC
SELECT
`tbl_casos`.`day`,
ROUND(AVG(`tbl_casos`.`deaths`)) AS `PROMEDIO_MUERTES`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`day`
ORDER BY 1,
2 ASC
SELECT
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`day`,
ROUND(AVG(`tbl_casos`.`deaths`)) AS `PROMEDIO_MUERTES`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`day`
ORDER BY 1,
2 ASC
SELECT
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`month`,
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`,
SUM(`tbl_casos`.`deaths`) AS `TOTAL_FALLECIDOS`
FROM
`tbl_casos`
WHERE
`tbl_casos`.`month` IN (1,2,3)
GROUP BY
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`month`
ORDER BY
1,
2
SELECT
CASE WHEN DIA=0 THEN 'LUNES'
WHEN DIA=1 THEN 'MARTES'
WHEN DIA=2 THEN 'MIERCOLES'
WHEN DIA=3 THEN 'JUEVES'
WHEN DIA=4 THEN 'VIERNES'
WHEN DIA=5 THEN 'SABADO'
ELSE 'DOMINGO' END DIA_SEMANA,
TOTAL_CONTAGIADOS
FROM (
SELECT
weekday(`tbl_casos`.`fecha`) DIA,
SUM(`tbl_casos`.`cases`) TOTAL_CONTAGIADOS
FROM
`tbl_casos`
GROUP BY 1
)A
ORDER BY A.DIA
21.) Los 5 países donde más se han reportado contagios en un sólo día
SELECT PAIS,DIA,TOTAL_CONTAGIADOS,
ROW_NUMBER() OVER (PARTITION BY PAIS ORDER BY
TOTAL_CONTAGIADOS DESC) NUMERADOR
FROM (
SELECT
`tbl_casos`.`countriesAndTerritories` pais,
`tbl_casos`.`day` dia,
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`day`
ORDER BY
1,
2
)A
ORDER BY 1,4 ASC
)A
WHERE NUMERADOR =1
ORDER BY TOTAL_CONTAGIADOS DESC
LIMIT 5
22.) Los 5 países donde más se han reportado fallecidos en un sólo día
SELECT PAIS,DIA,TOTAL_FALLECIDOS,
ROW_NUMBER() OVER (PARTITION BY PAIS ORDER BY TOTAL_FALLECIDOS
DESC) NUMERADOR
FROM (
SELECT
`tbl_casos`.`countriesAndTerritories` pais,
`tbl_casos`.`day` dia,
SUM(`tbl_casos`.`deaths`) AS `TOTAL_FALLECIDOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`day`
ORDER BY
1,
2
)A
ORDER BY 1,4 ASC
)A
WHERE NUMERADOR =1
ORDER BY TOTAL_FALLECIDOS DESC
LIMIT 5
23.) Los 5 países donde menos casos se han reportado en un solo día,
(Exceptuando días sin reporte de casos)
SELECT PAIS,DIA,TOTAL_CONTAGIADOS,
ROW_NUMBER() OVER (PARTITION BY PAIS ORDER BY TOTAL_CONTAGIADOS ASC)
NUMERADOR
FROM (
SELECT
`tbl_casos`.`countriesAndTerritories` pais,
`tbl_casos`.`day` dia,
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`
FROM
`tbl_casos`
WHERE `tbl_casos`.`cases`>0
GROUP BY
`tbl_casos`.`countriesAndTerritories`,
`tbl_casos`.`day`
ORDER BY
1,
2
)A
ORDER BY 1,4 ASC
)A
WHERE NUMERADOR =1
ORDER BY TOTAL_CONTAGIADOS ASC
LIMIT 5
24.) El país con la mayor cantidad de casos y el país con la menor cantidad
de casos.
UNION
SELECT C.PAIS,A.CANTIDAD_CONTAGIOS FROM (SELECT
MIN(CANTIDAD_CONTAGIOS) CANTIDAD_CONTAGIOS FROM (
SELECT
`tbl_casos`.`countriesAndTerritories` AS `PAIS`,
SUM(`tbl_casos`.`cases`) AS `CANTIDAD_CONTAGIOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`
ORDER BY
2 ASC
)A
)A INNER JOIN (SELECT
`tbl_casos`.`countriesAndTerritories` AS `PAIS`,
SUM(`tbl_casos`.`cases`) AS `CANTIDAD_CONTAGIOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`countriesAndTerritories`
ORDER BY
2 ASC) C
ON
A.CANTIDAD_CONTAGIOS=C.CANTIDAD_CONTAGIOS
GROUP BY A.CANTIDAD_CONTAGIOS,C.PAIS