У меня есть данные в следующем формате.
match_id team_id won_ind
----------------------------
37 Team1 N
67 Team1 Y
98 Team1 N
109 Team1 N
158 Team1 Y
162 Team1 Y
177 Team1 Y
188 Team1 Y
198 Team1 N
207 Team1 Y
217 Team1 Y
10 Team2 N
13 Team2 N
24 Team2 N
39 Team2 Y
40 Team2 Y
51 Team2 Y
64 Team2 N
79 Team2 N
86 Team2 N
91 Team2 Y
101 Team2 N
Здесь match_id
расположены в хронологическом порядке, 37 — это первый, а 217 — последний матч, сыгранный командой1. won_ind
указывало, выиграла команда матч или нет.
Итак, из приведенных выше данных команда1 проиграла свой первый матч, затем выиграла матч, затем проиграла 2 матча, затем выиграла 4 матча подряд и так далее. Теперь мне интересно найти самую длинную победную серию для каждой команды.
Team_id longest_streak
------------------------
Team1 4
Team2 3
Я знаю, как найти это в plsql, но мне было интересно, можно ли это вычислить в чистом SQL. Я пытался использовать LEAD, LAG и несколько других функций, но ничего не добился.
Я создал образец скрипта здесь.