From c425fd40f978b9c89482bc678a89cb65c4b56b6a Mon Sep 17 00:00:00 2001 From: Kaaviya Varrshini Date: Sat, 7 Jun 2025 15:31:35 -0400 Subject: [PATCH] Done Sql5 --- Problem1_ContiguousDate.sql | 17 +++++++++++++++ Problem2_StudentReportByGeography.sql | 30 +++++++++++++++++++++++++++ Problem3_AvgSalarDepComp.sql | 19 +++++++++++++++++ Problem4_GamePlay1.sql | 4 ++++ 4 files changed, 70 insertions(+) create mode 100644 Problem1_ContiguousDate.sql create mode 100644 Problem2_StudentReportByGeography.sql create mode 100644 Problem3_AvgSalarDepComp.sql create mode 100644 Problem4_GamePlay1.sql diff --git a/Problem1_ContiguousDate.sql b/Problem1_ContiguousDate.sql new file mode 100644 index 0000000..07d6e38 --- /dev/null +++ b/Problem1_ContiguousDate.sql @@ -0,0 +1,17 @@ +# Write your MySQL query statement below +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 +select success_date as 'dat','succeeded' as period_state, +rank() over(order by success_date) as rnk +from Succeeded +where year(success_date)=2019 +order by dat) + +select period_state,min(dat) as start_date, +max(dat) as end_date +from (select *, rank() over(order by dat)-rnk as 'diff' from cte) as Y +group by diff, period_state +order by start_date; diff --git a/Problem2_StudentReportByGeography.sql b/Problem2_StudentReportByGeography.sql new file mode 100644 index 0000000..97129ae --- /dev/null +++ b/Problem2_StudentReportByGeography.sql @@ -0,0 +1,30 @@ +# Write your MySQL query statement below +--Solution 1 + +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 + +--Solution 2 with session variables + +select America,Asia,Europe from ( + (select @am:=0, @as:=0,@eu:=0)t1, + (select @as:=@as+1 as 'asrnk',name as 'Asia' from student where continent='Asia' order by Asia)t2 + right join + (select @am:=@am+1 as 'amrnk',name as 'America' from student where continent='America' order by America)t3 on asrnk=amrnk + left join + (select @eu:=@eu+1 as 'eurnk',name as 'Europe' from student where continent='Europe' order by Europe)t4 on eurnk=amrnk +) \ No newline at end of file diff --git a/Problem3_AvgSalarDepComp.sql b/Problem3_AvgSalarDepComp.sql new file mode 100644 index 0000000..0d1e4ef --- /dev/null +++ b/Problem3_AvgSalarDepComp.sql @@ -0,0 +1,19 @@ +# Write your MySQL query statement below +with compavgcte as ( +select concat(year(pay_date),'-',lpad(month(pay_date),2,'0')) as pay_month, +avg(amount) as compavg +from salary +group by 1), +depavgcte as (select e.department_id, +concat(year(pay_date),'-',lpad(month(pay_date),2,'0')) as pay_month, +avg(amount) as depavg +from employee e +inner join salary s on e.employee_id=s.employee_id +group by 1,2) + +select d.pay_month, +d.department_id, +case when d.depavg > c.compavg then 'higher' + when d.depavg = c.compavg then 'same' + else 'lower' end as comparison +from depavgcte d inner join compavgcte c on d.pay_month=c.pay_month \ No newline at end of file diff --git a/Problem4_GamePlay1.sql b/Problem4_GamePlay1.sql new file mode 100644 index 0000000..d947788 --- /dev/null +++ b/Problem4_GamePlay1.sql @@ -0,0 +1,4 @@ +# Write your MySQL query statement below +select player_id, min(event_date) as first_login +from activity +group by player_id \ No newline at end of file