Если требуется число регистраций по дням, фильтруйте последние 30 дней, группируйте по дате и используйте ORDER BY. Схему и часовой пояс нужно задать явно: одно общее число сортировать по дате бессмысленно.
Выведите количество пользователей, зарегистрировавшихся за последние 30 дней, и отсортируйте результат по дате регистрации.
Если требуется число регистраций по дням, фильтруйте последние 30 дней, группируйте по дате и используйте ORDER BY. Схему и часовой пояс нужно задать явно: одно общее число сортировать по дате бессмысленно.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Если требуется число регистраций по дням, фильтруйте последние 30 дней, группируйте по дате и используйте ORDER BY. Схему и часовой пояс нужно задать явно: одно общее число сортировать по дате бессмысленно.
Для PostgreSQL предположим users(created_at timestamptz) и даты UTC:
SELECT (created_at AT TIME ZONE 'UTC')::date AS day,
COUNT(*) AS users_count
FROM users
WHERE created_at >= CURRENT_TIMESTAMP - INTERVAL '30 days'
AND created_at <= CURRENT_TIMESTAMP
GROUP BY day
ORDER BY day;
Это скользящий 30-дневный интервал, а не ровно 30 календарных дат. Дни без регистраций отсутствуют; для нулей нужен календарный ряд и LEFT JOIN. Для общего итога убирают GROUP BY и дату.