From c7883cd8b1b58ea5207455db966cdcc5f93a1157 Mon Sep 17 00:00:00 2001 From: Zaid Roshan Mayers Date: Thu, 9 Jan 2025 18:48:19 -0500 Subject: [PATCH 1/2] Added solution for Report Contiguous Dates --- ReportContiguousDates.sql | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 ReportContiguousDates.sql diff --git a/ReportContiguousDates.sql b/ReportContiguousDates.sql new file mode 100644 index 0000000..02f8e1d --- /dev/null +++ b/ReportContiguousDates.sql @@ -0,0 +1,14 @@ +WITH CTE AS ( + SELECT fail_date AS 'dat', 'failed' AS period_state, rank() OVER (ORDER BY fail_date) AS 'rnk' + FROM failed WHERE YEAR(fail_date) = 2019 + UNION ALL + SELECT success_date AS 'dat', 'succeeded' AS period_state, rank() OVER (ORDER BY success_date) AS 'rnk' + FROM succeeded WHERE YEAR(success_date) = 2019 +) + +SELECT period_state, MIN(dat) AS start_date, MAX(dat) AS end_date +FROM ( + SELECT *, (rank() OVER (ORDER BY dat) - rnk) AS 'group_rnk' FROM CTE +) AS y +GROUP BY group_rnk, period_state +ORDER BY start_date; From 624402de1d72bd74b850190c4c49de545c2101cb Mon Sep 17 00:00:00 2001 From: Zaid Roshan Mayers Date: Thu, 9 Jan 2025 19:05:34 -0500 Subject: [PATCH 2/2] Added solutions for Average Salary: Departments VS Company, Game Play Analysis 1 and Students Report By Geography. --- AvgSalOfDeptVsCom.sql | 17 +++++++++++++++++ GamePlayAnalysis1.sql | 2 ++ StudentsReportByGeography.sql | 19 +++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 AvgSalOfDeptVsCom.sql create mode 100644 GamePlayAnalysis1.sql create mode 100644 StudentsReportByGeography.sql diff --git a/AvgSalOfDeptVsCom.sql b/AvgSalOfDeptVsCom.sql new file mode 100644 index 0000000..ac27975 --- /dev/null +++ b/AvgSalOfDeptVsCom.sql @@ -0,0 +1,17 @@ +SELECT departmentSalary.pay_month, department_id, +CASE + WHEN departmentAvg > companyAvg THEN 'higher' + WHEN departmentAvg < companyAvg THEN 'lower' + ELSE 'same' +END AS 'comparison' +FROM ( + SELECT date_format(pay_date, '%Y-%m') AS 'pay_month', department_id, AVG(amount) AS 'departmentAvg' + FROM Salary JOIN Employee ON Salary.employee_id = Employee.employee_id + GROUP BY department_id, pay_month +) AS departmentSalary +JOIN ( + SELECT date_format(pay_date, '%Y-%m') AS 'pay_month', AVG(amount) AS 'companyAvg' + FROM Salary + GROUP BY pay_month +) AS companySalary +ON departmentSalary.pay_month = companySalary.pay_month; diff --git a/GamePlayAnalysis1.sql b/GamePlayAnalysis1.sql new file mode 100644 index 0000000..ad7f648 --- /dev/null +++ b/GamePlayAnalysis1.sql @@ -0,0 +1,2 @@ +SELECT DISTINCT player_id, MIN(event_date) OVER(PARTITION BY player_id ORDER BY event_date) AS 'first_login' +FROM activity; diff --git a/StudentsReportByGeography.sql b/StudentsReportByGeography.sql new file mode 100644 index 0000000..4bd456b --- /dev/null +++ b/StudentsReportByGeography.sql @@ -0,0 +1,19 @@ +WITH first AS ( + SELECT name AS 'America', ROW_NUMBER() OVER(ORDER BY name) AS 'rnk' + FROM student + WHERE continent = 'America' +), +second AS ( + SELECT name AS 'Asia', ROW_NUMBER() OVER(ORDER BY name) AS 'rnk' + FROM student + WHERE continent = 'Asia' +), +third AS ( + SELECT name AS 'Europe', ROW_NUMBER() OVER(ORDER BY name) AS 'rnk' + FROM student + WHERE continent = 'Europe' +) +SELECT America, Asia, Europe +FROM second +RIGHT JOIN first ON first.rnk = second.rnk +LEFT JOIN third ON first.rnk = third.rnk;