Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions 1.sql
Original file line number Diff line number Diff line change
@@ -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;
23 changes: 23 additions & 0 deletions 2.sql
Original file line number Diff line number Diff line change
@@ -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
34 changes: 34 additions & 0 deletions 3.sql
Original file line number Diff line number Diff line change
@@ -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;
4 changes: 4 additions & 0 deletions 4.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
select player_id, min(event_date) as first_login
from Activity
group by player_id
order by player_id