Está en la página 1de 11

TALLER COSULTAS SQL COVID-19

Presentado
Por

Carlos Andres Maya


Jorge Esteban Arias

Docente
Jimmy Andres Campo
1.) Total de contagiados en todo el mundo

SELECT
SUM(`tbl_casos`.`cases`) AS `TOTA_CONTAGIADOS`
FROM
`tbl_casos`

2.) Total de fallecidos en todo el mundo

SELECT
SUM(`tbl_casos`.`deaths`) AS `TOTAL_FALLECIDOS`
FROM
`tbl_casos`

3.) Porcentaje de contagiados que han fallecido en todo el mundo

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`

4.) Porcentaje de contagiados de la población total del mundo

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`

5.) Porcentaje de fallecidos de la población total del mundo mundo

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

8.) Los 5 países con mayor cantidad de fallecidos

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

9.) Los 5 países con mayor cantidad de contagiados

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

10.) Todos los países con el porcentaje de su población total contagiada


select
c.`Code`,
pais,
c.`Population`,
total_contagiados,
total_contagiados/c.`Population`*100 porcentaje_contagiados

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

12.) Cada fecha con el número de contagios en todo el mundo

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

14.) Promedio de contagiados por día (Mundial)

SELECT

`tbl_casos`.`day`,
SUM(`tbl_casos`.`cases`) AS `TOTAL_CONTAGIADOS`
FROM
`tbl_casos`
GROUP BY
`tbl_casos`.`day`
ORDER BY
2 ASC

15.) Promedio de contagiados por día (para cada país)

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

16.) Promedio de fallecidos por día (Mundial)

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

17.) Promedio de fallecidos por día (para cada país)

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

18.) Total de contagiados y total de fallecidos en cada país en febrero,


marzo y abril

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

19.) El día de la semana en que se reportan más contagios

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 2 DESC LIMIT 1

20.) Cada día de la semana con la cantidad de contagiados en todo el


mundo

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 FROM (

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 FROM (

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 FROM (

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.

SELECT C.PAIS,A.CANTIDAD_CONTAGIOS FROM (SELECT


MAX(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

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

También podría gustarte