diff --git a/1.sql b/1.sql new file mode 100644 index 0000000..1cbe3de --- /dev/null +++ b/1.sql @@ -0,0 +1,28 @@ +# Write your MySQL query statement below +WITH cte AS ( + SELECT + fail_date AS dt, + '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 dt, + 'succeeded' AS period_state, + RANK() OVER (ORDER BY success_date) AS rnk + FROM Succeeded + WHERE YEAR(success_date) = 2019 +), +cte2 AS ( + SELECT + *, + (RANK() OVER (ORDER BY dt) - rnk) AS group_rank + FROM cte +) +SELECT period_state, min(dt) as start_date,max(dt) as end_date +FROM cte2 +group by group_rank, period_state +order by 2; diff --git a/2.sql b/2.sql new file mode 100644 index 0000000..117b262 --- /dev/null +++ b/2.sql @@ -0,0 +1,23 @@ +# Write your MySQL query statement belows +with cte1 as( +select name as America, row_number()over(order by name) as rnk +from Student +where continent = 'America' +), +cte2 as( + select name as Asia, row_number()over(order by name) as rnk +from Student +where continent = 'Asia' +), +cte3 as +( +select name as Europe, row_number()over(order by name) as rnk +from Student +where continent = 'Europe' ) + +select cte1.America, cte2.Asia,cte3.Europe +from cte2 +right join cte1 +on cte2.rnk=cte1.rnk +left join cte3 +on cte1.rnk=cte3.rnk \ No newline at end of file diff --git a/3.sql b/3.sql new file mode 100644 index 0000000..0ccfb8a --- /dev/null +++ b/3.sql @@ -0,0 +1,34 @@ +WITH cte1 AS ( + SELECT + e.department_id, + AVG(s.amount) AS department_avg, + DATE_FORMAT(s.pay_date, '%Y-%m') AS pay_month + FROM + salary s + JOIN + employee e ON s.employee_id = e.employee_id + GROUP BY + e.department_id, + pay_month +), +cte2 AS ( + SELECT + AVG(s.amount) AS company_avg, + DATE_FORMAT(s.pay_date, '%Y-%m') AS pay_month + FROM + salary s + GROUP BY + pay_month +) +SELECT + cte1.pay_month, + cte1.department_id, + CASE + WHEN cte1.department_avg > cte2.company_avg THEN 'higher' + WHEN cte1.department_avg < cte2.company_avg THEN 'lower' + ELSE 'same' + END AS comparison +FROM + cte1 +JOIN + cte2 ON cte1.pay_month = cte2.pay_month; \ No newline at end of file diff --git a/4.sql b/4.sql new file mode 100644 index 0000000..5f776c2 --- /dev/null +++ b/4.sql @@ -0,0 +1,4 @@ +select player_id, min(event_date) as first_login +from Activity +group by player_id +order by player_id \ No newline at end of file