Bạn có thể sử dụng như sau:
SELECT Team, TotalWins, FirstWin, LastWin
FROM ( SELECT Team,
WL,
COUNT(*) TotalWins,
MIN("Date") FirstWin,
MAX("Date") LastWin,
ROW_NUMBER() OVER(PARTITION BY Team, WL ORDER BY COUNT(*) DESC) RowNumber
FROM ( SELECT Team,
"Date",
WL,
ROW_NUMBER() OVER(PARTITION BY Team ORDER BY "Date") - ROW_NUMBER() OVER(PARTITION BY Team, WL ORDER BY "Date") Grouping
FROM T
) GroupedData
WHERE WL = 'W'
GROUP BY Team, WL, Grouping
) RankedData
WHERE RowNumber = 1;
Nó sử dụng ROW_NUMBER để xếp hạng từng trò chơi được phân chia theo đội và do đó, sự khác biệt giữa hai trò chơi này là duy nhất cho mỗi nhóm kết quả liên tiếp. Vì vậy, đối với nhóm đầu tiên của bạn, bạn sẽ có:
Team Date W/L RN1 RN2 DIFF
Team_1 04/01/0012 W 1 1 0
Team_1 06/01/0012 W 2 2 0
Team_1 07/01/0012 L 3 1 2
Team_1 14/01/0012 W 4 3 1
Team_1 19/01/0012 W 5 4 1
Team_1 30/01/0012 L 6 2 4
Team_1 14/02/0012 W 7 5 2
Team_1 17/02/0012 L 8 3 5
Team_1 20/02/0012 W 9 6 3
Trong đó RN1 chỉ được phân vùng theo nhóm và rn2 được phân vùng theo nhóm và kết quả.
Như bạn có thể thấy, nếu Bạn loại bỏ Số lỗ thì cột DIFF sẽ tăng lên một cho mỗi nhóm chiến thắng liên tiếp:
Team Date W/L RN1 RN2 DIFF
Team_1 04/01/0012 W 1 1 0
Team_1 06/01/0012 W 2 2 0
---------------------------------------
Team_1 14/01/0012 W 4 3 1
Team_1 19/01/0012 W 5 4 1
---------------------------------------
Team_1 14/02/0012 W 7 5 2
---------------------------------------
Team_1 20/02/0012 W 9 6 3
Sau đó, bạn có thể nhóm theo điều này để đảm bảo bạn đang xem các chiến thắng liên tiếp và đếm để đạt được nhiều nhất. Sau đó, tôi vừa sử dụng một thợ cắt dây khác để có được số trận thắng liên tiếp tối đa cho mỗi đội.