From 5f68cf4dcc89ea888241adae327dfb3947c71eea Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Mon, 16 Oct 2023 14:30:47 +0800 Subject: [PATCH 1/3] feat: add sql solution to lc problem: No.1322 --- solution/1300-1399/1322.Ads Performance/README.md | 15 ++++++++++++++- .../1300-1399/1322.Ads Performance/README_EN.md | 15 ++++++++++++++- .../1300-1399/1322.Ads Performance/Solution.sql | 2 +- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/solution/1300-1399/1322.Ads Performance/README.md b/solution/1300-1399/1322.Ads Performance/README.md index 7142ac18f2de3..cdb2b551182f8 100644 --- a/solution/1300-1399/1322.Ads Performance/README.md +++ b/solution/1300-1399/1322.Ads Performance/README.md @@ -89,10 +89,23 @@ SELECT WHEN action = 'Viewed' THEN 0 ELSE NULL END) * 100, 2), 0) AS ctr -FROM ads +FROM Ads GROUP BY ad_id ORDER BY ctr DESC, ad_id ASC; ``` +```sql +SELECT ad_id, + ROUND( + IFNULL( + SUM(action='Clicked') / SUM(action IN ('Clicked', 'Viewed')) * 100 + , 0) + , 2) + AS ctr +FROM Ads +GROUP BY ad_id +ORDER BY 2 DESC, 1; +``` + diff --git a/solution/1300-1399/1322.Ads Performance/README_EN.md b/solution/1300-1399/1322.Ads Performance/README_EN.md index 639466315e3b1..9b5babcd43b68 100644 --- a/solution/1300-1399/1322.Ads Performance/README_EN.md +++ b/solution/1300-1399/1322.Ads Performance/README_EN.md @@ -82,10 +82,23 @@ SELECT WHEN action = 'Viewed' THEN 0 ELSE NULL END) * 100, 2), 0) AS ctr -FROM ads +FROM Ads GROUP BY ad_id ORDER BY ctr DESC, ad_id ASC; ``` +```sql +SELECT ad_id, + ROUND( + IFNULL( + SUM(action='Clicked') / SUM(action IN ('Clicked', 'Viewed')) * 100 + , 0) + , 2) + AS ctr +FROM Ads +GROUP BY ad_id +ORDER BY 2 DESC, 1; +``` + diff --git a/solution/1300-1399/1322.Ads Performance/Solution.sql b/solution/1300-1399/1322.Ads Performance/Solution.sql index 8c22509445dd3..f8b0658534671 100644 --- a/solution/1300-1399/1322.Ads Performance/Solution.sql +++ b/solution/1300-1399/1322.Ads Performance/Solution.sql @@ -14,6 +14,6 @@ SELECT ), 0 ) AS ctr -FROM ads +FROM Ads GROUP BY ad_id ORDER BY ctr DESC, ad_id ASC; From b859e93383d71751ec52d76731246f7b7fb99524 Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Mon, 16 Oct 2023 14:47:56 +0800 Subject: [PATCH 2/3] fix: remove old solution --- .../1300-1399/1322.Ads Performance/README.md | 16 +--------------- .../1322.Ads Performance/README_EN.md | 16 +--------------- .../1322.Ads Performance/Solution.sql | 18 +++--------------- 3 files changed, 5 insertions(+), 45 deletions(-) diff --git a/solution/1300-1399/1322.Ads Performance/README.md b/solution/1300-1399/1322.Ads Performance/README.md index cdb2b551182f8..7492d43824666 100644 --- a/solution/1300-1399/1322.Ads Performance/README.md +++ b/solution/1300-1399/1322.Ads Performance/README.md @@ -81,20 +81,6 @@ Ads 表: ### **SQL** -```sql -SELECT - ad_id, - IFNULL(ROUND(AVG(CASE - WHEN action = 'Clicked' THEN 1 - WHEN action = 'Viewed' THEN 0 - ELSE NULL - END) * 100, 2), 0) AS ctr -FROM Ads -GROUP BY ad_id -ORDER BY ctr DESC, -ad_id ASC; -``` - ```sql SELECT ad_id, ROUND( @@ -104,7 +90,7 @@ SELECT ad_id, , 2) AS ctr FROM Ads -GROUP BY ad_id +GROUP BY 1 ORDER BY 2 DESC, 1; ``` diff --git a/solution/1300-1399/1322.Ads Performance/README_EN.md b/solution/1300-1399/1322.Ads Performance/README_EN.md index 9b5babcd43b68..391ef6530aea0 100644 --- a/solution/1300-1399/1322.Ads Performance/README_EN.md +++ b/solution/1300-1399/1322.Ads Performance/README_EN.md @@ -74,20 +74,6 @@ Note that we do not care about Ignored Ads. ### **SQL** -```sql -SELECT - ad_id, - IFNULL(ROUND(AVG(CASE - WHEN action = 'Clicked' THEN 1 - WHEN action = 'Viewed' THEN 0 - ELSE NULL - END) * 100, 2), 0) AS ctr -FROM Ads -GROUP BY ad_id -ORDER BY ctr DESC, -ad_id ASC; -``` - ```sql SELECT ad_id, ROUND( @@ -97,7 +83,7 @@ SELECT ad_id, , 2) AS ctr FROM Ads -GROUP BY ad_id +GROUP BY 1 ORDER BY 2 DESC, 1; ``` diff --git a/solution/1300-1399/1322.Ads Performance/Solution.sql b/solution/1300-1399/1322.Ads Performance/Solution.sql index f8b0658534671..e475f053f6066 100644 --- a/solution/1300-1399/1322.Ads Performance/Solution.sql +++ b/solution/1300-1399/1322.Ads Performance/Solution.sql @@ -1,19 +1,7 @@ # Write your MySQL query statement below SELECT ad_id, - IFNULL( - ROUND( - AVG( - CASE - WHEN action = 'Clicked' THEN 1 - WHEN action = 'Viewed' THEN 0 - ELSE NULL - END - ) * 100, - 2 - ), - 0 - ) AS ctr + ROUND(IFNULL(SUM(action = 'Clicked') / SUM(action IN ('Clicked', 'Viewed')) * 100, 0), 2) AS ctr FROM Ads -GROUP BY ad_id -ORDER BY ctr DESC, ad_id ASC; +GROUP BY 1 +ORDER BY 2 DESC, 1; From f6da5e7074d2edfd50052fb2644d0a00f6b43a40 Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Mon, 16 Oct 2023 14:59:38 +0800 Subject: [PATCH 3/3] fix: format --- solution/1300-1399/1322.Ads Performance/README.md | 10 +++------- solution/1300-1399/1322.Ads Performance/README_EN.md | 10 +++------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/solution/1300-1399/1322.Ads Performance/README.md b/solution/1300-1399/1322.Ads Performance/README.md index 7492d43824666..3018165bd5d23 100644 --- a/solution/1300-1399/1322.Ads Performance/README.md +++ b/solution/1300-1399/1322.Ads Performance/README.md @@ -82,13 +82,9 @@ Ads 表: ### **SQL** ```sql -SELECT ad_id, - ROUND( - IFNULL( - SUM(action='Clicked') / SUM(action IN ('Clicked', 'Viewed')) * 100 - , 0) - , 2) - AS ctr +SELECT + ad_id, + ROUND(IFNULL(SUM(action = 'Clicked') / SUM(action IN ('Clicked', 'Viewed')) * 100, 0), 2) AS ctr FROM Ads GROUP BY 1 ORDER BY 2 DESC, 1; diff --git a/solution/1300-1399/1322.Ads Performance/README_EN.md b/solution/1300-1399/1322.Ads Performance/README_EN.md index 391ef6530aea0..5287b221ca5d1 100644 --- a/solution/1300-1399/1322.Ads Performance/README_EN.md +++ b/solution/1300-1399/1322.Ads Performance/README_EN.md @@ -75,13 +75,9 @@ Note that we do not care about Ignored Ads. ### **SQL** ```sql -SELECT ad_id, - ROUND( - IFNULL( - SUM(action='Clicked') / SUM(action IN ('Clicked', 'Viewed')) * 100 - , 0) - , 2) - AS ctr +SELECT + ad_id, + ROUND(IFNULL(SUM(action = 'Clicked') / SUM(action IN ('Clicked', 'Viewed')) * 100, 0), 2) AS ctr FROM Ads GROUP BY 1 ORDER BY 2 DESC, 1;