-- Given table contains reported covid cases in 2020. -- Calculate the percentage increase in covid cases each month versus cumulative cases as of the prior month. -- Return the month number, and the percentage increase rounded to one decimal. Order the result by the month. drop table if exists covid_cases; CREATE TABLE covid_cases ( cases_reported INT, dates DATE ); -- Insert data INSERT INTO covid_cases VALUES (20124, '2020-01-10'); INSERT INTO covid_cases VALUES (40133, '2020-01-15'); INSERT INTO covid_cases VALUES (65005, '2020-01-20'); INSERT INTO covid_cases VALUES (30005, '2020-02-08'); INSERT INTO covid_cases VALUES (35015, '2020-02-19'); INSERT INTO covid_cases VALUES (15015, '2020-03-03'); INSERT INTO covid_cases VALUES (35035, '2020-03-10'); INSERT INTO covid_cases VALUES (49099, '2020-03-14'); INSERT INTO covid_cases VALUES (84045, '2020-03-20'); INSERT INTO covid_cases VALUES (100106, '2020-03-31'); INSERT INTO covid_cases VALUES (17015, '2020-04-04'); INSERT INTO covid_cases VALUES (36035, '2020-04-11'); INSERT INTO covid_cases VALUES (50099, '2020-04-13'); INSERT INTO covid_cases VALUES (87045, '2020-04-22'); INSERT INTO covid_cases VALUES (101101, '2020-04-30'); INSERT INTO covid_cases VALUES (40015, '2020-05-01'); INSERT INTO covid_cases VALUES (54035, '2020-05-09'); INSERT INTO covid_cases VALUES (71099, '2020-05-14'); INSERT INTO covid_cases VALUES (82045, '2020-05-21'); INSERT INTO covid_cases VALUES (90103, '2020-05-25'); INSERT INTO covid_cases VALUES (99103, '2020-05-31'); INSERT INTO covid_cases VALUES (11015, '2020-06-03'); INSERT INTO covid_cases VALUES (28035, '2020-06-10'); INSERT INTO covid_cases VALUES (38099, '2020-06-14'); INSERT INTO covid_cases VALUES (45045, '2020-06-20'); INSERT INTO covid_cases VALUES (36033, '2020-07-09'); INSERT INTO covid_cases VALUES (40011, '2020-07-23'); INSERT INTO covid_cases VALUES (25001, '2020-08-12'); INSERT INTO covid_cases VALUES (29990, '2020-08-26'); INSERT INTO covid_cases VALUES (20112, '2020-09-04'); INSERT INTO covid_cases VALUES (43991, '2020-09-18'); INSERT INTO covid_cases VALUES (51002, '2020-09-29'); INSERT INTO covid_cases VALUES (26587, '2020-10-25'); INSERT INTO covid_cases VALUES (11000, '2020-11-07'); INSERT INTO covid_cases VALUES (35002, '2020-11-16'); INSERT INTO covid_cases VALUES (56010, '2020-11-28'); INSERT INTO covid_cases VALUES (15099, '2020-12-02'); INSERT INTO covid_cases VALUES (38042, '2020-12-11'); INSERT INTO covid_cases VALUES (73030, '2020-12-26'); --select * from covid_cases -- Given table contains reported covid cases in 2020. -- Calculate the percentage increase in covid cases each month versus cumulative cases as of the prior month. -- Return the month number, and the percentage increase rounded to one decimal. Order the result by the month. drop table if exists covid_cases; CREATE TABLE covid_cases ( cases_reported INT, dates DATE ); -- Insert data INSERT INTO covid_cases VALUES (20124, '2020-01-10'); INSERT INTO covid_cases VALUES (40133, '2020-01-15'); INSERT INTO covid_cases VALUES (65005, '2020-01-20'); INSERT INTO covid_cases VALUES (30005, '2020-02-08'); INSERT INTO covid_cases VALUES (35015, '2020-02-19'); INSERT INTO covid_cases VALUES (15015, '2020-03-03'); INSERT INTO covid_cases VALUES (35035, '2020-03-10'); INSERT INTO covid_cases VALUES (49099, '2020-03-14'); INSERT INTO covid_cases VALUES (84045, '2020-03-20'); INSERT INTO covid_cases VALUES (100106, '2020-03-31'); INSERT INTO covid_cases VALUES (17015, '2020-04-04'); INSERT INTO covid_cases VALUES (36035, '2020-04-11'); INSERT INTO covid_cases VALUES (50099, '2020-04-13'); INSERT INTO covid_cases VALUES (87045, '2020-04-22'); INSERT INTO covid_cases VALUES (101101, '2020-04-30'); INSERT INTO covid_cases VALUES (40015, '2020-05-01'); INSERT INTO covid_cases VALUES (54035, '2020-05-09'); INSERT INTO covid_cases VALUES (71099, '2020-05-14'); INSERT INTO covid_cases VALUES (82045, '2020-05-21'); INSERT INTO covid_cases VALUES (90103, '2020-05-25'); INSERT INTO covid_cases VALUES (99103, '2020-05-31'); INSERT INTO covid_cases VALUES (11015, '2020-06-03'); INSERT INTO covid_cases VALUES (28035, '2020-06-10'); INSERT INTO covid_cases VALUES (38099, '2020-06-14'); INSERT INTO covid_cases VALUES (45045, '2020-06-20'); INSERT INTO covid_cases VALUES (36033, '2020-07-09'); INSERT INTO covid_cases VALUES (40011, '2020-07-23'); INSERT INTO covid_cases VALUES (25001, '2020-08-12'); INSERT INTO covid_cases VALUES (29990, '2020-08-26'); INSERT INTO covid_cases VALUES (20112, '2020-09-04'); INSERT INTO covid_cases VALUES (43991, '2020-09-18'); INSERT INTO covid_cases VALUES (51002, '2020-09-29'); INSERT INTO covid_cases VALUES (26587, '2020-10-25'); INSERT INTO covid_cases VALUES (11000, '2020-11-07'); INSERT INTO covid_cases VALUES (35002, '2020-11-16'); INSERT INTO covid_cases VALUES (56010, '2020-11-28'); INSERT INTO covid_cases VALUES (15099, '2020-12-02'); INSERT INTO covid_cases VALUES (38042, '2020-12-11'); INSERT INTO covid_cases VALUES (73030, '2020-12-26'); --select * from covid_cases WITH cte1 AS ( SELECT MONTH(dates) AS months, SUM(cases_reported) OVER (PARTITION BY MONTH(dates) order by month(dates) ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED Following) AS running_sum FROM covid_cases ), cte2 as( SELECT DISTINCT * FROM cte1 ), cte3 as( select *, sum(running_sum) over(order by months) as cummalitaive_running_sum from cte2 ), cte4 as( select months, cummalitaive_running_sum, lag(cummalitaive_running_sum) over(order by months) as lead_sum from cte3 ) select *, (cummalitaive_running_sum-lead_sum)/lead_sum from cte4