From 75d99beaf87f6e4f03ae4a71d1633bc57c34bf6e Mon Sep 17 00:00:00 2001 From: Imran Imtiaz Date: Thu, 25 Jul 2024 08:37:45 +0400 Subject: [PATCH] Update 1322_Ads_Performance.sql --- PIVOT-UNPIVOT/1322_Ads_Performance.sql | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/PIVOT-UNPIVOT/1322_Ads_Performance.sql b/PIVOT-UNPIVOT/1322_Ads_Performance.sql index eb03ef9..0f8a850 100644 --- a/PIVOT-UNPIVOT/1322_Ads_Performance.sql +++ b/PIVOT-UNPIVOT/1322_Ads_Performance.sql @@ -1,15 +1,23 @@ +-- Calculate the Click-Through Rate (CTR) for each ad WITH tb1 AS ( - SELECT ad_id, [Clicked], [Viewed], [Ignored] + SELECT + ad_id, + ISNULL([Clicked], 0) AS Clicked, + ISNULL([Viewed], 0) AS Viewed, + ISNULL([Ignored], 0) AS Ignored FROM Ads PIVOT ( - COUNT(action) FOR action IN ([Clicked], [Viewed], [Ignored]) - ) pvt + COUNT(action) + FOR action IN ([Clicked], [Viewed], [Ignored]) + ) AS pvt ) -SELECT ad_id, +SELECT + ad_id, + -- Calculate the CTR (Click-Through Rate) as a percentage CASE - WHEN SUM(Clicked+Viewed) = 0 THEN 0.0 - ELSE CAST(SUM(Clicked)*100.0/SUM(Clicked+Viewed) AS DECIMAL(5,2)) + WHEN SUM(Clicked + Viewed) = 0 THEN 0.0 + ELSE CAST(SUM(Clicked) * 100.0 / SUM(Clicked + Viewed) AS DECIMAL(5, 2)) END AS ctr FROM tb1 GROUP BY ad_id