SQL workspace: https://www.db-fiddle.com/f/9n6Z1uU9kXBGeBo2b64iVu/0
I have a MYSQL table named url_clicks that contains the following columns:
Write a SQL query that will create a pivot table showing a list of URLs for the months of January, February, and March. For each month, I would like to see both the absolute and relative change in the number of clicks for each URL. Present relative change as a percentage.
SELECT url, SUM(CASE WHEN month = 'January' THEN clicks ELSE 0 END) AS january_clicks, SUM(CASE WHEN month = 'February' THEN clicks ELSE 0 END) AS february_clicks, SUM(CASE WHEN month = 'March' THEN clicks ELSE 0 END) AS march_clicks, SUM(CASE WHEN month = 'February' THEN clicks ELSE 0 END) - SUM(CASE WHEN month = 'January' THEN clicks ELSE 0 END) AS february_absolute_change, SUM(CASE WHEN month = 'March' THEN clicks ELSE 0 END) - SUM(CASE WHEN month = 'February' THEN clicks ELSE 0 END) AS march_absolute_change, 100 * (SUM(CASE WHEN month = 'February' THEN clicks ELSE 0 END) - SUM(CASE WHEN month = 'January' THEN clicks ELSE 0 END)) / NULLIF(SUM(CASE WHEN month = 'January' THEN clicks ELSE 0 END), 0) AS february_relative_change, 100 * (SUM(CASE WHEN month = 'March' THEN clicks ELSE 0 END) - SUM(CASE WHEN month = 'February' THEN clicks ELSE 0 END)) / NULLIF(SUM(CASE WHEN month = 'February' THEN clicks ELSE 0 END), 0) AS march_relative_change FROM url_clicks WHERE month IN ('January', 'February', 'March') GROUP BY url;