From 548bbd0fe7dceaffc0d142fda7f88988b15ed1ed Mon Sep 17 00:00:00 2001 From: Arushi Bhambri Date: Thu, 5 Jun 2025 01:40:44 -0700 Subject: [PATCH] Added Sql5 Q1-4 --- Sql5_Q1_ReportContDates_rnk_grprnk.sql | 34 ++++++++++++++++++++++++++ Sql5_Q2_StudentsByGeo.sql | 33 +++++++++++++++++++++++++ Sql5_Q3_AvgSalDeptCo.sql | 27 ++++++++++++++++++++ Sql5_Q4_GamePlayAnalysis.sql | 5 ++++ 4 files changed, 99 insertions(+) create mode 100644 Sql5_Q1_ReportContDates_rnk_grprnk.sql create mode 100644 Sql5_Q2_StudentsByGeo.sql create mode 100644 Sql5_Q3_AvgSalDeptCo.sql create mode 100644 Sql5_Q4_GamePlayAnalysis.sql diff --git a/Sql5_Q1_ReportContDates_rnk_grprnk.sql b/Sql5_Q1_ReportContDates_rnk_grprnk.sql new file mode 100644 index 0000000..57965ff --- /dev/null +++ b/Sql5_Q1_ReportContDates_rnk_grprnk.sql @@ -0,0 +1,34 @@ +with master_table as +( + select + fail_date as 'date' + , 'failed' as period_state + from + Failed + where year(fail_date) = 2019 + union + select + success_date as 'date' + , 'succeeded' as period_state + from + Succeeded + where year(success_date) = 2019 +) +, ranking_period_state as +( + select + date + , period_state + , rank() over(order by date) - rank() over(partition by period_state order by date) as diff + from + master_table +) +select + period_state + , min(date) as start_date + , max(date) as end_date +from + ranking_period_state +group by + diff, period_state +order by start_date \ No newline at end of file diff --git a/Sql5_Q2_StudentsByGeo.sql b/Sql5_Q2_StudentsByGeo.sql new file mode 100644 index 0000000..fbb738b --- /dev/null +++ b/Sql5_Q2_StudentsByGeo.sql @@ -0,0 +1,33 @@ +with cte1 as +( +select + name as 'America' + , row_number() over(order by name) as rnk +from student +where continent = 'America' +order by 1 +) +, cte2 as +( +select + name as 'Asia' + , row_number() over(order by name) as rnk +from student +where continent = 'Asia' +order by 1 +) +, cte3 as +( +select + name as 'Europe' + , row_number() over(order by name) as rnk +from student +where continent = 'Europe' +order by 1 +) + +select + cte1.America + , cte2.Asia + , cte3.Europe +from cte2 right join cte1 on cte1.rnk = cte2.rnk left join cte3 on cte1.rnk = cte3.rnk diff --git a/Sql5_Q3_AvgSalDeptCo.sql b/Sql5_Q3_AvgSalDeptCo.sql new file mode 100644 index 0000000..42dc5ef --- /dev/null +++ b/Sql5_Q3_AvgSalDeptCo.sql @@ -0,0 +1,27 @@ +with company_avg as +( + select + date_format(pay_date, '%Y-%m') as date_year + , avg(amount) as company_avg + from + Salary + group by 1 +) +, dept_avg_sal as +( + select + date_format(s.pay_date, '%Y-%m') as date_year + , e.department_id + , avg(s.amount) as dept_avg + from + Salary s join Employee e on s.employee_id = e.employee_id + group by e.department_id, 1 +) + +select + d.date_year as pay_month + , d.department_id + , case when c.company_avg > d.dept_avg then 'lower' + when c.company_avg = d.dept_avg then 'same' + when c.company_avg < d.dept_avg then 'higher' end as comparison +from company_avg c join dept_avg_sal d on c.date_year = d.date_year diff --git a/Sql5_Q4_GamePlayAnalysis.sql b/Sql5_Q4_GamePlayAnalysis.sql new file mode 100644 index 0000000..0762fe2 --- /dev/null +++ b/Sql5_Q4_GamePlayAnalysis.sql @@ -0,0 +1,5 @@ +select + player_id + , min(event_date) as first_login +from Activity +group by 1 \ No newline at end of file