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
33 changes: 33 additions & 0 deletions Average_Salary_Department_vs_Company.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
SELECT
ds.pay_month,
ds.department_id,
CASE
WHEN ds.department_avg > cs.company_avg THEN 'higher'
WHEN ds.department_avg < cs.company_avg THEN 'lower'
ELSE 'same'
END AS comparison
FROM (
-- Calculate average salary per department per month
SELECT
e.department_id,
DATE_FORMAT(s.pay_date, '%Y-%m') AS pay_month,
AVG(s.amount) AS department_avg
FROM
salary s
JOIN
employee e ON s.employee_id = e.employee_id
GROUP BY
e.department_id, DATE_FORMAT(s.pay_date, '%Y-%m')
) AS ds
JOIN (
-- Calculate company-wide average salary per month
SELECT
DATE_FORMAT(pay_date, '%Y-%m') AS pay_month,
AVG(amount) AS company_avg
FROM
salary
GROUP BY
DATE_FORMAT(pay_date, '%Y-%m')
) AS cs
ON
ds.pay_month = cs.pay_month;
3 changes: 3 additions & 0 deletions Game_Play_Analysis_I.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Write your MySQL query statement below
SELECT A.player_id, MIN(A.event_date) AS first_login
FROM Activity A GROUP By A.player_id;
51 changes: 51 additions & 0 deletions Report_Contiguos_Dates.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Write your MySQL query statement below
WITH combined_status AS (

SELECT
fail_date AS dat,
'failed' AS period_state
FROM
Failed
WHERE
YEAR(fail_date) = 2019

UNION ALL

SELECT
success_date AS dat,
'succeeded' AS period_state
FROM
Succeeded
WHERE
YEAR(success_date) = 2019
),
ranked_status AS (

SELECT
dat,
period_state,
ROW_NUMBER() OVER (ORDER BY dat) AS row_num,
RANK() OVER (PARTITION BY period_state ORDER BY dat) AS state_rank
FROM
combined_status
),
grouped_status AS (
-- Use the difference between row_num and state_rank as grouping key
SELECT
dat,
period_state,
ROW_NUMBER() OVER (ORDER BY dat) - RANK() OVER (PARTITION BY period_state ORDER BY dat) AS grp
FROM
combined_status
)

SELECT
period_state,
MIN(dat) AS start_date,
MAX(dat) AS end_date
FROM
grouped_status
GROUP BY
period_state, grp
ORDER BY
start_date;
12 changes: 12 additions & 0 deletions Student_Report_By_Geography.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
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;