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