MySQL: подсчитайте количество раз, когда появится значение

Я немного поработал над Googling, чтобы попытаться найти этот ответ и даже наткнулся на функцию OVER () для SQL Server и статью о том, как подражать … но она выше моего уровня оплаты: P

Я буду держать его простым и сказать, что у меня есть таблица студентов и столбец действий. Я хочу создать запрос, который будет считать количество последовательных раз, когда они либо подняли руку, не подняли руку, либо не посетили класс. Нет уроков на выходные, поэтому он должен считать фактические записи, а не только сегодня – FirstFoundDate. Если ученик А поднимает руку на 3 недели подряд (это будет 15 = 5 дней X 3 недели), но затем не будет отображаться до класса, счет будет 0.

Есть идеи?

Благодаря,

Я думал об этом, и давайте начнем …

Как насчет

 select * from student_action maindata where not exist (select * from student_action action_count where maindata.student_id = action_count.student_id and maindata.action_timestamp < action_count.action_timestamp and maindata.action <> action_count.action) 

Это должно дать нам все последовательные действия в таблице, по одной строке для каждого последовательного появления. Тогда группа их посчитает.

 select count(*), maindata.student_id, maindata.action from student_action maindata where not exist (select * from student_action action_count where maindata.student_id = action_count.student_id and maindata.action_timestamp < action_count.action_timestamp and maindata.action <> action_count.action) group by maindata.student_id, maindata.action