-
Notifications
You must be signed in to change notification settings - Fork 0
/
CovidAnalysisQueries.sql
183 lines (134 loc) · 6.08 KB
/
CovidAnalysisQueries.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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
--Select the data to be used from Tables
SELECT location, date, total_cases, new_cases, total_deaths, population
FROM CovidDeaths$
WHERE continent is not NULL
ORDER BY 1,2
-- Now lets get the percentage of deaths over total cases
-- This represents the likelihood of dying if infected in Cameroon
SELECT location, date, total_cases, total_deaths, (cast(total_deaths as int)/total_cases)*100 AS Percentage_deaths
FROM CovidDeaths$
WHERE location = 'Cameroon' AND continent is not NULL
ORDER BY 1,2 desc
--Next lets get the percentage of cases over population
--This represents the dayly risks of getting infected in Cameroon
SELECT location, date, population, total_cases, (total_cases/population)*100 AS Percentage_infections
FROM CovidDeaths$
WHERE location = 'Cameroon' AND continent is not NULL
ORDER BY 1,2
-- Looking now at the highest infection rate per country
SELECT location, population, MAX(total_cases) AS HighestInfectionCount, MAX((total_cases/population))*100 AS MaxInfections
FROM CovidDeaths$
--WHERE location = 'Cameroon'
WHERE continent is not NULL
GROUP BY location, population
ORDER BY 4 desc
-- Now lets pull out the country with highest death counts
SELECT location, population, MAX(cast(total_deaths as int)) AS HighestdeathCount, MAX((total_deaths/population))*100 AS Maxdeaths
FROM CovidDeaths$
--WHERE location = 'Cameroon'
WHERE continent is not NULL
GROUP BY location, population
ORDER BY 3 desc
-- Splitting out by Continent (Has an error cause dataset contains several continent cell
-- which are NULL and several location cells which shows continents instead of countries)
SELECT location, population, MAX(cast(total_deaths as int)) AS HighestdeathCount, MAX((total_deaths/population))*100 AS Maxdeaths
FROM CovidDeaths$
--WHERE location = 'Cameroon'
WHERE continent is NULL
GROUP BY location, population
ORDER BY 3 desc
-- Now lets try getting the dayly death and deathrate in the world
SELECT date, SUM(new_cases) AS Total_Cases, SUM(cast(new_deaths as int)) AS Total_Deaths, (SUM(cast(new_deaths as int))/SUM(new_cases))*100 AS DeathPercentage
FROM CovidDeaths$
WHERE continent is not NULL
Group BY date
ORDER BY 1
-- Global Numbers (World Deatrate)
SELECT SUM(new_cases) AS Total_Cases, SUM(cast(new_deaths as int)) AS Total_Deaths, (SUM(cast(new_deaths as int))/SUM(new_cases))*100 AS DeathPercentage
FROM CovidDeaths$
WHERE continent is not NULL
--Group BY date
ORDER BY 1
-- Lets move now to the next step which is getting out dayly vaccinations per
SELECT continent, location, date, population, new_vaccinations,
SUM(cast(new_vaccinations as bigint)) OVER (Partition BY location ORDER BY location, date) AS RollingPeopleVaccinated
FROM CovidVaccinations$
WHERE continent is not NULL
ORDER BY 2,3
-- Using CTE to perform Calculation(Percentage population Vaccinated) on Partition By in previous query
With PopvsVac (continent, location, date, population, new_vaccinations, RollingPeopleVaccinated)
as
(
Select continent, location, date, population, new_vaccinations,
SUM(cast(new_vaccinations as bigint)) OVER (Partition BY location ORDER BY location, date) AS RollingPeopleVaccinated
From CovidVaccinations$
where continent is not null
--order by 2,3
)
Select *, (RollingPeopleVaccinated/Population)*100 AS PercentagePopVaccinated
From PopvsVac
-- Using Temp Table to perform Calculation (Percentage population Vaccinated) on Partition By in previous query
DROP Table if exists #PercentPopulationVaccinated
Create Table #PercentPopulationVaccinated
(
Continent nvarchar(255),
Location nvarchar(255),
Date datetime,
Population numeric,
New_vaccinations numeric,
RollingPeopleVaccinated numeric
)
Insert into #PercentPopulationVaccinated
Select continent, location, date, population, new_vaccinations,
SUM(cast(new_vaccinations as bigint)) OVER (Partition BY location ORDER BY location, date) AS RollingPeopleVaccinated
From CovidVaccinations$
where continent is not null
--order by 2,3
Select *, (RollingPeopleVaccinated/Population)*100 AS PercentagePopVaccinated
From #PercentPopulationVaccinated
-- Creating View to store data for later visualizations
Create View PercentPopulationVaccinated as
SELECT continent, location, date, population, new_vaccinations,
SUM(cast(new_vaccinations as bigint)) OVER (Partition BY location ORDER BY location, date) AS RollingPeopleVaccinated
FROM CovidVaccinations$
WHERE continent is not NULL
-- View 1
CREATE VIEW WorldsDeathRate AS
SELECT SUM(new_cases) AS Total_Cases, SUM(cast(new_deaths as int)) AS Total_Deaths, (SUM(cast(new_deaths as int))/SUM(new_cases))*100 AS DeathPercentage
FROM CovidDeaths$
WHERE continent is not NULL
--Group BY date
-- View 2
CREATE VIEW DaylyDeathRate AS
SELECT date, SUM(new_cases) AS Total_Cases, SUM(cast(new_deaths as int)) AS Total_Deaths, (SUM(cast(new_deaths as int))/SUM(new_cases))*100 AS DeathPercentage
FROM CovidDeaths$
WHERE continent is not NULL
Group BY date
--View 3
CREATE VIEW HighestDeathCount AS
SELECT location, population, MAX(cast(total_deaths as int)) AS HighestdeathCount, MAX((total_deaths/population))*100 AS Maxdeaths
FROM CovidDeaths$
--WHERE location = 'Cameroon'
WHERE continent is not NULL
GROUP BY location, population
--ORDER BY 3 desc
-- View 4
CREATE VIEW HighestInfectionCount AS
SELECT location, population, MAX(cast(total_deaths as int)) AS HighestdeathCount, MAX((total_deaths/population))*100 AS Maxdeaths
FROM CovidDeaths$
--WHERE location = 'Cameroon'
WHERE continent is not NULL
GROUP BY location, population
--ORDER BY 3 desc
-- View 5
CREATE VIEW DaylyInfectionPercentage AS
SELECT location, date, population, total_cases, (total_cases/population)*100 AS Percentage_infections
FROM CovidDeaths$
WHERE location = 'Cameroon' AND continent is not NULL
--ORDER BY 1,2
-- View 6
CREATE VIEW DaylyDeathPercentage AS
SELECT location, date, total_cases, total_deaths, (cast(total_deaths as int)/total_cases)*100 AS Percentage_deaths
FROM CovidDeaths$
WHERE location = 'Cameroon' AND continent is not NULL
--ORDER BY 1,2 desc