Выведите количество пользователей, зарегистрировавшихся за последние 30 дней, и отсортируйте результат по дате регистрации.

Если требуется число регистраций по дням, фильтруйте последние 30 дней, группируйте по дате и используйте ORDER BY. Схему и часовой пояс нужно задать явно: одно общее число сортировать по дате бессмысленно.

Короткий ответ

Что ответить на собеседовании

Если требуется число регистраций по дням, фильтруйте последние 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 и дату.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее