У меня есть приложение, написанное в MySQL с нижеуказанным форматом таблицы аудита. Мне нужно определить текущее количество пользователей, зарегистрированных в системе в любой момент времени в течение дня.
Я пробовал это с различными self-соединениями, подзапросами, timediff и даже конвертированием в unixtime плюс некоторые простые математики, однако я не могу придумать приемлемое решение.
Любые указатели или помощь оцениваются в значительной степени.MySQL определяет количество пользователей в часовом запросе системы
audit_table
user | action | time
-----|--------|------
1 | login | 2013-07-02 00:37:00
2 | login | 2013-07-02 00:38:00
1 | logout | 2013-07-02 00:39:30
3 | login | 2013-07-02 00:40:00
2 | logout | 2013-07-02 02:30:00
Необходимый формат: час 24-часового рабочего дня | Количество пользователей, зарегистрированных в течение этого часа
примера (Обратите внимание, что пользователь 3 не вошел еще, таким образом, все еще показывает активность в счете в час 3)
hour | usersloggedin
-----|---------------
0 | 3
1 | 2
2 | 2
3 | 1
Дополнительные данные образца и ** всегда ** отправляйте то, что вы пробовали. Когда мы играем с вашими примерными данными, результат в настоящее время будет заключаться в том, что каждый пользователь попадает в строку часа = 0. Я предполагаю, что возможно, что у пользователя несколько логинов и выход из системы? Определяете ли вы каким-либо образом, какой логин относится к тому, что выйдет из системы? – fancyPants