Skip to content

Commit 59aca55

Browse files
Add files via upload
Initial Commit
0 parents  commit 59aca55

File tree

1 file changed

+198
-0
lines changed

1 file changed

+198
-0
lines changed

COVID-SQL-Data-Exploration.sql

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
/*
2+
Covid 19 Data Exploration
3+
Skills used: Joins, CTE's, Temp Tables, Windows Functions, Aggregate Functions, Creating Views, Converting Data Types
4+
*/
5+
6+
SELECT *
7+
FROM PortfolioProject..CovidDeaths
8+
WHERE continent is not null
9+
ORDER BY 3,4
10+
11+
--Select *
12+
--From PortfolioProject..CovidVaccinations
13+
--Order By 3,4
14+
15+
16+
SELECT location,
17+
date,
18+
total_cases,
19+
new_cases,
20+
total_deaths,
21+
population
22+
FROM PortfolioProject..CovidDeaths
23+
ORDER BY 1,2
24+
25+
26+
-- Looking at Total Cases vs Total Deaths
27+
28+
Select location,
29+
date,
30+
total_cases,
31+
total_deaths,
32+
(CAST(total_deaths AS decimal)/total_cases)*100 AS DeathPercentage
33+
FROM PortfolioProject..CovidDeaths
34+
WhERE location LIKE '%states%'
35+
ORDER BY 1,2
36+
37+
38+
-- Looking at Total Cases vs Population
39+
-- Shows what percentage of population got Covid
40+
41+
SELECT location,
42+
date,
43+
population,
44+
total_cases,
45+
(CAST(total_cases AS decimal)/population)*100 AS PercentagePopulationEffected
46+
FROM PortfolioProject..CovidDeaths
47+
WHERE location LIKE '%states%'
48+
ORDER BY 1,2
49+
50+
51+
-- Looking at Countries with Highest Infection Rate compared to Population
52+
53+
SELECT location,
54+
population,
55+
MAX(total_cases) AS HighestInfectionCount,
56+
(MAX(total_cases) / population)*100 AS PercentagePopulationEffected
57+
FROM PortfolioProject..CovidDeaths
58+
GROUP BY location, population
59+
ORDER BY PercentagePopulationEffected DESC
60+
61+
62+
-- Showing Countries with Highest Death Rate
63+
64+
SELECT location,
65+
MAX(CAST(total_deaths AS int)) AS TotalDeathCount
66+
FROM PortfolioProject..CovidDeaths
67+
WHERE continent IS NOT NULL
68+
GROUP BY location
69+
ORDER BY TotalDeathCount DESC
70+
71+
72+
-- Showing Continent (and various group) Death Rates
73+
74+
SELECT location,
75+
MAX(CAST(total_deaths AS int)) AS TotalDeathCount
76+
FROM PortfolioProject..CovidDeaths
77+
WHERE continent IS NULL
78+
GROUP BY location
79+
ORDER BY TotalDeathCount DESC
80+
81+
82+
-- Global Numbers
83+
84+
SELECT SUM(new_cases) AS total_cases,
85+
SUM(CAST(new_deaths AS int)) AS total_deaths,
86+
SUM(CAST(new_deaths AS int))/SUM(new_cases)*100 AS DeathPercentage
87+
FROM PortfolioProject..CovidDeaths
88+
WHERE Continent IS NOT NULL
89+
ORDER BY 1, 2
90+
91+
92+
-- Getting a rolling tally by country of number of people vaccinated, and a rolling tally
93+
-- of the percentage of the population that is vaccinated.
94+
-- Using a CTE.
95+
96+
WITH PopvsVac (Continent, Location, Date, Population, New_Vaccinations, RollingPeopleVaccinated)
97+
AS
98+
(
99+
SELECT dea.continent,
100+
dea.location,
101+
dea.date,
102+
dea.population,
103+
vac.new_vaccinations,
104+
SUM(CONVERT(bigint, vac.new_vaccinations))
105+
OVER (PARTITION BY dea.location
106+
ORDER BY dea.location, dea.date) AS RollingPeopleVaccinated
107+
FROM PortfolioProject..CovidDeaths dea
108+
JOIN PortfolioProject..CovidVaccinations vac
109+
ON dea.location = vac.location
110+
AND dea.date = vac.date
111+
WHERE dea.continent IS NOT NULL
112+
-- Order By 2, 3
113+
)
114+
SELECT *, (RollingPeopleVaccinated/Population)*100 AS PctPeopleVaccinated
115+
FROM PopvsVac
116+
117+
118+
-- Getting a rolling tally by country of number of people vaccinated, and a rolling tally
119+
-- of the percentage of the population that is vaccinated.
120+
-- Using a Temp Table.
121+
122+
CREATE TABLE #PercentPeopleVaccinated
123+
(
124+
Continent nvarchar(255),
125+
Location nvarchar(255),
126+
Date datetime,
127+
Population numeric,
128+
New_Vaccinations numeric,
129+
RollingPeopleVaccinated numeric
130+
)
131+
INSERT INTO #PercentPeopleVaccinated
132+
SELECT dea.continent,
133+
dea.location,
134+
dea.date,
135+
dea.population,
136+
vac.new_vaccinations,
137+
SUM(CONVERT(bigint, vac.new_vaccinations))
138+
OVER (PARTITION BY dea.location
139+
ORDER BY dea.location, dea.date) AS RollingPeopleVaccinated
140+
FROM PortfolioProject..CovidDeaths dea
141+
JOIN PortfolioProject..CovidVaccinations vac
142+
ON dea.location = vac.location
143+
AND dea.date = vac.date
144+
WHERE dea.continent IS NOT NULL
145+
-- Order By 2, 3
146+
147+
SELECT *, (RollingPeopleVaccinated/Population)*100 AS PctPeopleVaccinated
148+
FROM #PercentPeopleVaccinated
149+
150+
151+
-- Creating some Views to use later in visualizations. Commenting out Order By as can't use when setting up a view.
152+
-- Including it instead in the Select statement that displays everything from the newly created view.
153+
154+
CREATE VIEW PercentPeopleVaccinated AS
155+
SELECT dea.continent,
156+
dea.location,
157+
dea.date,
158+
dea.population,
159+
vac.new_vaccinations,
160+
SUM(CONVERT(bigint, vac.new_vaccinations))
161+
OVER (PARTITION BY dea.location
162+
ORDER BY dea.location, dea.date) AS RollingPeopleVaccinated
163+
FROM PortfolioProject..CovidDeaths dea
164+
JOIN PortfolioProject..CovidVaccinations vac
165+
ON dea.location = vac.location
166+
AND dea.date = vac.date
167+
WHERE dea.continent IS NOT NULL
168+
-- Order By 2, 3
169+
170+
SELECT *
171+
FROM PercentPeopleVaccinated
172+
Order By 2, 3
173+
174+
175+
CREATE VIEW CountryDeaths AS
176+
SELECT location,
177+
MAX(CAST(total_deaths AS int)) AS TotalDeathCount
178+
FROM PortfolioProject..CovidDeaths
179+
WHERE continent IS NOT NULL
180+
GROUP BY location
181+
-- ORDER BY TotalDeathCount DESC
182+
183+
SELECT *
184+
FROM CountryDeaths
185+
ORDER BY TotalDeathCount DESC
186+
187+
188+
CREATE VIEW ContinentDeaths as
189+
SELECT location,
190+
MAX(CAST(total_deaths AS int)) AS TotalDeathCount
191+
FROM PortfolioProject..CovidDeaths
192+
WHERE continent IS NULL
193+
GROUP BY location
194+
-- ORDER BY TotalDeathCount DESC
195+
196+
SELECT *
197+
FROM ContinentDeaths
198+
ORDER BY TotalDeathCount DESC

0 commit comments

Comments
 (0)