Я предположил, что идентификатор турнира автоматически увеличивается, поэтому он обеспечивает хронологию данных.
Это классическая проблема порядка внутри группы.Для этого вам нужно учитывать такие переменные, как:
mysql> set @p_id:=-1; set @streak:=0;
mysql> select playerID,max(streak) from (select playerID,@streak:=if(Payout=0,0,if(@p_id=playerID,@streak+1,1)) streak, @p_id:=playerID from (select playerID,TournamentID,Payout from table order by 1,2) a) a group by 1;
В этом примере etaps:
- сортировка по игроку, а затем турнир
- длякаждый игрок:
- увеличивает переменную полосы, если была выплата
- установлен на 0, если нет
- устанавливает полосу на 0, если произошли измененияигрока.p_id! = playerID.p_id инкапсулировал информацию о последнем рассматриваемом игроке.