From 9391dc031a2924dd3506a9e76cc2a2dbe4fef330 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Sun, 9 Jul 2023 13:15:44 +0000 Subject: [PATCH 1/2] feat: add sql solutions to lc problems: No.0550,0570 * No.0550.Game Play Analysis IV * No.0570.Managers with at Least 5 Direct Reports --- .prettierrc | 1 + .../0550.Game Play Analysis IV/README.md | 30 +++++++++++++++++++ .../0550.Game Play Analysis IV/README_EN.md | 30 +++++++++++++++++++ .../README.md | 16 ++++++++++ .../README_EN.md | 16 ++++++++++ .../Solution.sql | 21 +++++++------ 6 files changed, 103 insertions(+), 11 deletions(-) diff --git a/.prettierrc b/.prettierrc index 0419ade6c5618..5abb625b8fa76 100644 --- a/.prettierrc +++ b/.prettierrc @@ -13,6 +13,7 @@ "overrides": [ { "files": [ + "solution/0500-0599/0550.Game Play Analysis IV/Solution.sql", "solution/0500-0599/0578.Get Highest Answer Rate Question/Solution.sql", "solution/0600-0699/0610.Triangle Judgement/Solution.sql", "solution/0600-0699/0618.Students Report By Geography/Solution.sql", diff --git a/solution/0500-0599/0550.Game Play Analysis IV/README.md b/solution/0500-0599/0550.Game Play Analysis IV/README.md index fecd3197e3968..256c6f618a325 100644 --- a/solution/0500-0599/0550.Game Play Analysis IV/README.md +++ b/solution/0500-0599/0550.Game Play Analysis IV/README.md @@ -71,4 +71,34 @@ FROM AND DATEDIFF(a.event_date, b.event_date) = -1; ``` +```sql +# Write your MySQL query statement below +WITH + T AS ( + SELECT + player_id, + datediff( + lead(event_date) OVER ( + PARTITION BY player_id + ORDER BY event_date + ), + event_date + ) AS diff, + row_number() OVER ( + PARTITION BY player_id + ORDER BY event_date + ) AS rk + FROM Activity + ) +SELECT + round( + count(DISTINCT if(diff = 1, player_id, NULL)) / count( + DISTINCT player_id + ), + 2 + ) AS fraction +FROM T +WHERE rk = 1; +``` + diff --git a/solution/0500-0599/0550.Game Play Analysis IV/README_EN.md b/solution/0500-0599/0550.Game Play Analysis IV/README_EN.md index f9027063951bb..f994095a3ca11 100644 --- a/solution/0500-0599/0550.Game Play Analysis IV/README_EN.md +++ b/solution/0500-0599/0550.Game Play Analysis IV/README_EN.md @@ -73,4 +73,34 @@ FROM AND DATEDIFF(a.event_date, b.event_date) = -1; ``` +```sql +# Write your MySQL query statement below +WITH + T AS ( + SELECT + player_id, + datediff( + lead(event_date) OVER ( + PARTITION BY player_id + ORDER BY event_date + ), + event_date + ) AS diff, + row_number() OVER ( + PARTITION BY player_id + ORDER BY event_date + ) AS rk + FROM Activity + ) +SELECT + round( + count(DISTINCT if(diff = 1, player_id, NULL)) / count( + DISTINCT player_id + ), + 2 + ) AS fraction +FROM T +WHERE rk = 1; +``` + diff --git a/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/README.md b/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/README.md index 0e4e95ed9b41c..61be2813e1a1b 100644 --- a/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/README.md +++ b/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/README.md @@ -80,4 +80,20 @@ FROM ON e1.id = e2.managerId; ``` +```sql +# Write your MySQL query statement below +WITH + T AS ( + SELECT + managerId, + count(1) OVER (PARTITION BY managerId) AS cnt + FROM Employee + ) +SELECT DISTINCT name +FROM + Employee AS e + JOIN T AS t ON e.id = t.managerId +WHERE cnt >= 5; +``` + diff --git a/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/README_EN.md b/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/README_EN.md index 38fa9e7357832..617155c377a27 100644 --- a/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/README_EN.md +++ b/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/README_EN.md @@ -76,4 +76,20 @@ FROM ON e1.id = e2.managerId; ``` +```sql +# Write your MySQL query statement below +WITH + T AS ( + SELECT + managerId, + count(1) OVER (PARTITION BY managerId) AS cnt + FROM Employee + ) +SELECT DISTINCT name +FROM + Employee AS e + JOIN T AS t ON e.id = t.managerId +WHERE cnt >= 5; +``` + diff --git a/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/Solution.sql b/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/Solution.sql index 55128b12e6aee..decc9101caffd 100644 --- a/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/Solution.sql +++ b/solution/0500-0599/0570.Managers with at Least 5 Direct Reports/Solution.sql @@ -1,14 +1,13 @@ # Write your MySQL query statement below -SELECT - name -FROM - Employee AS e1 - JOIN ( +WITH + T AS ( SELECT - managerId + managerId, + count(1) OVER (PARTITION BY managerId) AS cnt FROM Employee - WHERE managerId IS NOT NULL - GROUP BY managerId - HAVING count(1) >= 5 - ) AS e2 - ON e1.id = e2.managerId; + ) +SELECT DISTINCT name +FROM + Employee AS e + JOIN T AS t ON e.id = t.managerId +WHERE cnt >= 5; From 8f9577bae4a5942ade48e0ff4b1cb08b161cc0c7 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Sun, 9 Jul 2023 13:29:01 +0000 Subject: [PATCH 2/2] chore: copilot4prs in waitlist --- .github/pull_request_template.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 112aec8164a4b..212773f151498 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,7 +3,7 @@ + ### Description @@ -11,4 +11,6 @@ copilot:summary ### Explanation of Changes -copilot:walkthrough \ No newline at end of file +copilot:walkthrough + +--> \ No newline at end of file