Я довольно новичок в SQL, и я возился с некоторыми небольшими проектами, чтобы понять, как его можно использовать для крупномасштабной статистики.
Проблема, над которой я сейчас работаю, состоит в том, чтобы просто подсчитать количество пользователей, которые выиграли серию за определенный период времени.
Учитывая таблицу в формате
user_id,date_time,user_team,win_team
ab542a,2018-01-02 18:45:25,team1,team1
ef72da,2018-01-02 08:20:01,team2,team1
f5c776,2017-12-30 15:25:25,team1,team2
5a278a,2018-01-01 14:27:15,team2,team2
ae346d,2018-01-01 14:27:15,team2,team2
2b13d8,2017-12-31 12:33:34,team1,team2
ace797,2018-01-02 08:20:01,team2,team2
ace797,2018-01-03 18:18:22,team1,team2
ab542a,2018-01-03 18:45:25,team1,team1
ef72da,2018-01-03 08:20:01,team2,team1
f5c776,2017-12-31 15:25:25,team1,team2
5a278a,2018-01-02 14:27:15,team2,team2
ae346d,2018-01-02 14:27:15,team2,team2
2b13d8,2018-01-01 12:33:34,team1,team2
ace797,2018-01-03 08:20:01,team1,team1
ace797,2018-01-04 18:18:22,team1,team1
ab542a,2018-01-04 18:45:25,team1,team1
ef72da,2018-01-04 08:20:01,team2,team1
f5c776,2018-01-01 15:25:25,team1,team2
5a278a,2018-01-03 14:27:15,team2,team2
ae346d,2018-01-03 14:27:15,team2,team2
2b13d8,2018-01-02 12:33:34,team1,team2
ace797,2018-01-04 08:20:01,team2,team2
ace797,2018-01-05 18:18:22,team1,team1
где user - идентификатор пользователя, date - дата матча, команда - сторона, за которую играл пользователь, а победитель - победившая сторона матча. Как я могу сосчитать всех пользователей, у которых была выигрышная серия (не менее 3 последовательных побед)?
Кроме того, скажем, я хочу также отслеживать ход игры (шахматы, нарды и др. c). .) в той же таблице, возможно ли в одном и том же запросе отслеживать полосы в нескольких играх?
В python это может быть достигнуто с относительно простым l oop по идентификаторам пользователей, но будет вычислительно дорогой и, вероятно, не будет хорошо масштабироваться