Anda dapat menggunakan yang berikut ini:
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;
Ini menggunakan ROW_NUMBER untuk menentukan peringkat setiap permainan yang dipartisi oleh tim, dan juga berdasarkan hasil, perbedaan antara keduanya unik untuk setiap grup hasil berturut-turut. Jadi untuk tim pertama Anda, Anda akan memiliki:
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
Dimana RN1 hanya dipartisi oleh tim, dan rn2 dipartisi oleh tim dan hasilnya.
Seperti yang Anda lihat, jika Anda menghapus Kerugian maka kolom DIFF bertambah satu untuk setiap kelompok kemenangan berturut-turut:
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
Anda kemudian dapat mengelompokkan berdasarkan ini untuk memastikan Anda melihat kemenangan berturut-turut, dan melakukan hitungan untuk mendapatkan hasil maksimal. Saya kemudian baru saja menggunakan nomor baris lain untuk mendapatkan kemenangan berturut-turut maksimum per tim.