[Input]


[Problem]
[Output]

[Answer]
WITH base AS (
SELECT group_id,
COUNT(DISTINCT CASE WHEN converted = 1 THEN user_id END) AS converted,
COUNT(DISTINCT CASE WHEN converted = 0 THEN user_id END) AS not_converted
FROM ab_test
GROUP BY group_id
)
SELECT group_id,
converted,
not_converted,
converted + not_converted AS total_users,
ROUND((converted / (converted + not_converted)) * 100, 2) AS conversion_rate
FROM base
ORDER BY conversion_rate DESC;