Я почти злюсь, пытаясь решить эту проблему:
В моем приложении пользователи могут зарегистрироваться и удалить себя.Дата создания и дата удаления сохраняются в базе данных как метка времени.Мне нужно знать для каждого дня в диапазоне дней, сколько зарегистрированных и не удаленных пользователей существовало в этот день.
Так, если у меня есть 10 существующих пользователей на 2012-02-01, один пользователь, который удалилаккаунт на 2012-02-03, три пользователя, которые зарегистрировались на 2012-02-04, и два пользователя, удаленные на 2012-02-06, и запрос общего количества зарегистрированных пользователей с 2012-02-01 до 2012-02-07 Iхотелось бы получить такой результат:
day total_users
2012-02-01 10
2012-02-02 10
2012-02-03 9
2012-02-04 12
2012-02-05 12
2012-02-06 10
2012-02-07 10
Вот так выглядит моя упрощенная таблица пользователей:
user_id, user_name, creation_at, dele_at
ЭтоНет проблем, чтобы получить количество зарегистрированных и не удаленных пользователей за один конкретный день (здесь 2012-02-01, в моем примере это 10):
select application.application_id as application_id, count(user.user_id) as user_total
from application, user
where application.application_id = user.application_id
and date(user.created_at) <= '2012-02-01'
and ((date(user.deleted_at) > '2012-02-01') or (user.deleted_at is null))
Кто знает, как яМожно создать запрос (без курсора), который будет иметь ожидаемый результат?Моя база данных - MySQL 5.0.51 на Debian.
Заранее спасибо Marcus