Я хочу узнать, какие пользователи чаще всего входят в систему за один час. Я записываю всю активность в таблицу с именем user_activity
, в которой есть столбцы event_class
, timestamp
и user_id
(другие существуют, но не имеют значения). Когда пользователь входит в систему, класс событий LOGIN
записывается вместе с CURRENT_TIMESTAMP
против их user_id
.
На сервере выполняется конкурентная регистрация в университетских событиях, и учащиеся, решающие CAPTCHA (Python / OpenCV2 ...), были обнаружены в прошлом, когда я видел сотни login
событий в течение часа или около того для одного пользователя ( см. Ниже ). Я сделал скрипт, чтобы временно запретить пользователям входить в систему более 5 раз за последние десять минут, что достаточно просто.
Теперь я хочу выполнить поиск в исторических записях, чтобы увидеть общее количество входов в систему на пользователя в течение одного часа. В псевдо-говорить: «select each user_id from user_activity and group by total logins per last interval 1 hour
», чтобы я мог быстро увидеть, какие пользователи и IP-адреса (не показаны) быстро войти в систему. Можно ли это сделать?
Пример последних 30 логинов "Шона" перед тем, как мы его забанили
+---------+-------------+---------------------+
| user_id | event_class | timestamp |
+---------+-------------+---------------------+
| 617 | LOGIN | 2018-05-01 21:46:20 |
| 617 | LOGIN | 2018-05-01 20:48:55 |
| 617 | LOGIN | 2018-05-01 20:45:01 |
| 617 | LOGIN | 2018-05-01 20:43:41 |
| 617 | LOGIN | 2018-05-01 20:42:06 |
| 617 | LOGIN | 2018-05-01 20:37:19 |
| 617 | LOGIN | 2018-05-01 20:32:31 |
| 617 | LOGIN | 2018-05-01 20:27:17 |
| 617 | LOGIN | 2018-05-01 20:26:21 |
| 617 | LOGIN | 2018-05-01 20:25:44 |
| 617 | LOGIN | 2018-05-01 20:24:08 |
| 617 | LOGIN | 2018-05-01 20:20:44 |
| 617 | LOGIN | 2018-05-01 20:16:59 |
| 617 | LOGIN | 2018-05-01 18:23:44 |
| 617 | LOGIN | 2018-05-01 13:01:14 |
| 617 | LOGIN | 2018-05-01 12:55:12 |
| 617 | LOGIN | 2018-05-01 12:47:58 |
| 617 | LOGIN | 2018-04-30 16:09:51 |
| 617 | LOGIN | 2018-04-30 15:38:22 |
| 617 | LOGIN | 2018-04-30 15:37:31 |
| 617 | LOGIN | 2018-04-30 15:36:20 |
| 617 | LOGIN | 2018-04-30 15:35:33 |
| 617 | LOGIN | 2018-04-30 15:34:08 |
| 617 | LOGIN | 2018-04-30 15:31:46 |
| 617 | LOGIN | 2018-04-30 15:24:33 |
| 617 | LOGIN | 2018-04-30 15:23:22 |
| 617 | LOGIN | 2018-04-30 15:20:27 |
| 617 | LOGIN | 2018-04-30 15:09:49 |
| 617 | LOGIN | 2018-04-30 15:05:59 |
| 617 | LOGIN | 2018-04-30 15:00:03 |
+---------+-------------+---------------------+