Научим SQL считать новых пользователей по дням и видеть общий рост и вклад каждого дня.
Считаем, сколько пользователей зарегистрировалось в каждый день:
SELECT
registration_date,
COUNT(*) AS new_users
FROM users
GROUP BY registration_date
ORDER BY registration_date;
Теперь добавим накопительный итог — общее количество пользователей к каждой дате:
SELECT
registration_date,
COUNT(*) AS new_users,
SUM(COUNT(*)) OVER (ORDER BY registration_date) AS total_users
FROM users
GROUP BY registration_date
ORDER BY registration_date;
Посчитаем, какой процент от общего числа составляют новые пользователи каждого дня:
SELECT
registration_date,
ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER (), 2) AS percent_total
FROM users
GROUP BY registration_date
ORDER BY registration_date;
🔥 Такой запрос удобно использовать для дашбордов, отчетов и анализа маркетинговых кампаний.
➡️ SQL Ready | #практика