-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcovid_project.sql
121 lines (97 loc) · 2.66 KB
/
covid_project.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
USE PortfolioProject;
SELECT
location, date, total_cases, new_cases, total_deaths, population
FROM covid_deaths
ORDER BY location, date;
-- Total Cases vs Total Deaths
-- Shows the likelihood of dying if you contract covid in China before 2021-04-30
SELECT
location,
date,
total_cases,
total_deaths,
(total_deaths/total_cases) * 100 AS death_percentage
FROM covid_deaths
WHERE location like '%China%'
ORDER BY location, date;
-- Total Cases vs Population
-- Shows what percentage of population infected with Covid in China before 2020-4-30
SELECT
location,
date,
total_cases,
population,
total_deaths,
(total_cases/population) * 100 AS infection_percentage
FROM covid_deaths
WHERE location like '%China%'
ORDER BY location, date;
-- Countries with the Highest Infection Rate compared to Population
SELECT
location,
population,
MAX(total_cases) AS highest_infection_count,
MAX((total_cases/population)) * 100 AS infection_percentage
FROM covid_deaths
GROUP BY location, population
ORDER BY infection_percentage DESC;
-- Countries with the Highest Death Count per Population
SELECT
location,
MAX(total_deaths) AS highest_death_count
FROM covid_deaths
WHERE continent IS NOT NULL
GROUP BY location
ORDER BY highest_death_count DESC;
-- BREAKING THINGS DOWN BY CONTINENT
-- Continents with the Highest Death Count per Population
SELECT
location,
MAX(total_deaths) AS highest_death_count
FROM covid_deaths
WHERE continent IS NULL
GROUP BY location
ORDER BY highest_death_count DESC;
-- GLOBAL NUMBERS
SELECT
date,
SUM(new_cases) AS total_cases,
SUM(new_deaths) AS total_deaths,
(SUM(new_deaths)/SUM(new_cases)) * 100 AS death_percentage
FROM covid_deaths
WHERE continent IS NOT NULL
GROUP BY date
ORDER BY 1, 2;
-- Total Population vs Vaccination WITH CTE
WITH pop_vs_vac AS(
SELECT
cd.continent,
cv.location,
cd.date,
cd.population,
cv.new_vaccinations,
SUM(cv.new_vaccinations) OVER
(PARTITION BY cd.location
ORDER BY cd.location, cd.date) AS rolling_people_vaccinated
FROM covid_deaths cd
JOIN covid_vaccinations cv USING(location, date)
WHERE cd.continent IS NOT NULL
ORDER BY 2, 3
)
SELECT *, (rolling_people_vaccinated/population) * 100
FROM pop_vs_vac;
-- Creating View to Store Data for Later Visualization
CREATE VIEW percent_population_vaccinated AS
SELECT
cd.continent,
cv.location,
cd.date,
cd.population,
cv.new_vaccinations,
SUM(cv.new_vaccinations) OVER
(PARTITION BY cd.location
ORDER BY cd.location, cd.date) AS rolling_people_vaccinated
FROM covid_deaths cd
JOIN covid_vaccinations cv USING(location, date)
WHERE cd.continent IS NOT NULL
ORDER BY 2, 3