-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSQLQuery (Covid).sql
163 lines (126 loc) · 5.69 KB
/
SQLQuery (Covid).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
/*
Covid 19 Data Exploration
Skills used: Joins, CTE's, Temp Tables, Windows Functions, Aggregate Functions, Creating Views, Converting Data Types, and Data validation
*/
-- Selecting the data that I am going start with
Select Location, date, total_cases, new_cases, total_deaths, population
From PortfolioProjectCovid..CovidDeaths
Where continent is not null
order by 1,2
--What days did the United States have more new vaccines shots than new cases and vice versa
Select dea.location, dea.date, total_cases, cast(new_cases as int) as NewCases, cast(new_vaccinations as int) as NewVacs,
Case
When new_cases < new_vaccinations then 'More Vaccinations than Cases'
When new_cases > new_vaccinations then 'More Cases than Vaccinations'
When new_cases = new_vaccinations then 'Covid Cases = Vaccinations'
When new_cases is null then 'Country not infected'
When new_vaccinations is null then 'More Cases than Vaccines'
else 'NULL'
End as 'Vaccine vs Total Cases'
from CovidDeaths dea
join CovidVaccinations vac
on dea.date = vac.date
and dea.location = vac.location
where dea.location like '%states%'
--Total Cases vs Total Deaths
--Shows likelihoood of dying if you were to contract covid in the UnitedStates
select location, date, total_cases, total_deaths, (total_deaths/total_cases)*100 as 'Death Percentage'
from PortfolioProjectCovid..CovidDeaths
where location like '%states'
order by 1,2
--Total Cases vs Population
--Shows what percentage of population got Covid
select location, date, total_cases, population, (total_cases/population)*100 as 'PercentPolulationInfected'
from PortfolioProjectCovid..CovidDeaths
where location like '%states'
order by 1,2
--Countries with highest infection rate when compared to population
select Location, Population, Max(total_cases) as 'HighestInfectionCount', Max((total_cases/population)*100) as 'PercentInfectedPopulation'
from PortfolioProjectCovid..CovidDeaths
--where location like '%states'
group by location, population
order by PercentInfectedPopulation desc
-- Countries with highest death count
select Location, Population, Max(cast(total_deaths as int)) as 'HighestDeathCount'
from PortfolioProjectCovid..CovidDeaths
where continent is not null
group by location, population
order by HighestDeathCount desc
--BREAKING THINGS DOWN BY CONTINENT
--Query invalid, need to check data; however, next query provides correct numbers
----select continent, Max(cast(total_deaths as int)) as 'HighestDeathCount'
----from PortfolioProjectCovid..CovidDeaths
----where continent is not null
----group by continent
----order by HighestDeathCount desc
select location, Max(cast(total_deaths as int)) as 'HighestDeathCount'
from PortfolioProjectCovid..CovidDeaths
where continent is null
group by location
order by HighestDeathCount desc
--GLOBAL NUMBERS
--Total Population vs Deaths Percentage
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 PortfolioProjectCovid..CovidDeaths
--Where location like '%states%'
where continent is not null
Group By date
order by 1,2
-- Total Population vs Vaccination
select dea.continent, dea.location, dea.date, population, new_vaccinations,
Sum(cast(new_vaccinations as int)) OVER (Partition by dea.location order by dea.location, dea.date) as TotalVacs
-- (TotalVacs/Population)*100 as VaccinatedPopulation CANNOT DO, MUST USE CTE OR TEMP TABLE
from CovidDeaths dea
join CovidVaccinations vac
on dea.location = vac.location
and dea.date = vac.date
where dea.continent is not null
order by continent, location
--USE CTE to show Vaccinated population percentage
With PopVsVac (Contintent, Location, Date, Population, new_vaccinations, TotalVacs)
as
(
select dea.continent, dea.location, dea.date, population, new_vaccinations,
Sum(cast(new_vaccinations as int)) OVER (Partition by dea.location order by dea.location, dea.date) as TotalVacs
from CovidDeaths dea
join CovidVaccinations vac
on dea.location = vac.location
and dea.date = vac.date
where dea.continent is not null
--order by continent, location
)
Select * , (TotalVacs/Population)*100 as VaccinatedPopPercentage
from PopVsVac
-- Using Temp Table to perform Calculation 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,
TotalVacs numeric
)
Insert into #PercentPopulationVaccinated
Select dea.continent, dea.location, dea.date, dea.population, vac.new_vaccinations
, SUM(CONVERT(int,vac.new_vaccinations)) OVER (Partition by dea.Location Order by dea.location, dea.Date) as TotalVacs
--, (RollingPeopleVaccinated/population)*100
From PortfolioProjectCovid..CovidDeaths dea
Join PortfolioProjectCovid..CovidVaccinations vac
On dea.location = vac.location
and dea.date = vac.date
where dea.continent is not null
--order by 2,3
Select *, (TotalVacs/Population)*100
From #PercentPopulationVaccinated
-- Creating View to store data for later visualizations
Create View PercentPopulationVaccinated as
Select dea.continent, dea.location, dea.date, dea.population, vac.new_vaccinations
, SUM(CONVERT(int,vac.new_vaccinations)) OVER (Partition by dea.Location Order by dea.location, dea.Date) as RollingPeopleVaccinated
--, (RollingPeopleVaccinated/population)*100
From PortfolioProjectCovid..CovidDeaths dea
Join PortfolioProjectCovid..CovidVaccinations vac
On dea.location = vac.location
and dea.date = vac.date
where dea.continent is not null