Big Win Streaks
The longest winning streaks within a single season (11+ wins in a row)
11+ Game Winning Streaks
Each square is one win — date, opponent and score · longest streak at top
Manchester City2017-18 · 18 wins
2017-08-26BOU2-1
2017-09-09LIV5-0
2017-09-16WAT6-0
2017-09-23CRY5-0
2017-09-30CHE1-0
2017-10-14STO7-2
2017-10-21BUR3-0
2017-10-28WBA3-2
2017-11-05ARS3-1
2017-11-18LEI2-0
2017-11-26HUD2-1
2017-11-29SOU2-1
2017-12-03WHU2-1
2017-12-10MUN2-1
2017-12-13SWA4-0
2017-12-16TOT4-1
2017-12-23BOU4-0
2017-12-27NEW1-0
Liverpool2019-20 · 18 wins
2019-10-27TOT2-1
2019-11-02AVL2-1
2019-11-10MCI3-1
2019-11-23CRY2-1
2019-11-30BHA2-1
2019-12-04EVE5-2
2019-12-07BOU3-0
2019-12-14WAT2-0
2019-12-26LEI4-0
2019-12-29WOL1-0
2020-01-02SHU2-0
2020-01-11TOT1-0
2020-01-19MUN2-0
2020-01-23WOL2-1
2020-01-29WHU2-0
2020-02-01SOU4-0
2020-02-15NOR1-0
2020-02-24WHU3-2
Manchester City2020-21 · 15 wins
2020-12-19SOU1-0
2020-12-26NEW2-0
2021-01-03CHE3-1
2021-01-13BHA1-0
2021-01-17CRY4-0
2021-01-20AVL2-0
2021-01-26WBA5-0
2021-01-30SHU1-0
2021-02-03BUR2-0
2021-02-07LIV4-1
2021-02-13TOT3-0
2021-02-17EVE3-1
2021-02-21ARS1-0
2021-02-27WHU2-1
2021-03-02WOL4-1
Manchester City2018-19 · 14 wins
2019-02-03ARS3-1
2019-02-06EVE2-0
2019-02-10CHE6-0
2019-02-27WHU1-0
2019-03-02BOU1-0
2019-03-09WAT3-1
2019-03-30FUL2-0
2019-04-03CAR2-0
2019-04-14CRY3-1
2019-04-20TOT1-0
2019-04-24MUN2-0
2019-04-28BUR1-0
2019-05-06LEI1-0
2019-05-12BHA4-1
Arsenal2001-02 · 13 wins
2002-02-10EVE1-0
2002-02-23FUL4-1
2002-03-02NEW2-0
2002-03-05DER1-0
2002-03-17AVL2-1
2002-03-30SUN3-0
2002-04-01CHA3-0
2002-04-06TOT2-1
2002-04-21IPS2-0
2002-04-24WHU2-0
2002-04-29BOL2-0
2002-05-08MUN1-0
2002-05-11EVE4-3
Chelsea2016-17 · 13 wins
2016-10-01HUL2-0
2016-10-15LEI3-0
2016-10-23MUN4-0
2016-10-30SOU2-0
2016-11-05EVE5-0
2016-11-20MID1-0
2016-11-26TOT2-1
2016-12-03MCI3-1
2016-12-11WBA1-0
2016-12-14SUN1-0
2016-12-17CRY1-0
2016-12-26BOU3-0
2016-12-31STO4-2
Manchester City2021-22 · 12 wins
2021-11-06MUN2-0
2021-11-21EVE3-0
2021-11-28WHU2-1
2021-12-01AVL2-1
2021-12-04WAT3-1
2021-12-11WOL1-0
2021-12-14LEE7-0
2021-12-19NEW4-0
2021-12-26LEI6-3
2021-12-29BRE1-0
2022-01-01ARS2-1
2022-01-15CHE1-0
Manchester City2022-23 · 12 wins
2023-02-25BOU4-1
2023-03-04NEW2-0
2023-03-11CRY1-0
2023-04-01LIV4-1
2023-04-08SOU4-1
2023-04-15LEI3-1
2023-04-26ARS4-1
2023-04-30FUL2-1
2023-05-03WHU3-0
2023-05-06LEE2-1
2023-05-14EVE3-0
2023-05-21CHE1-0
Manchester United1999-00 · 11 wins
2000-03-11DER3-1
2000-03-18LEI2-0
2000-03-25BRA4-0
2000-04-01WHU7-1
2000-04-10MID4-3
2000-04-15SUN4-0
2000-04-22SOU3-1
2000-04-24CHE3-2
2000-04-29WAT3-2
2000-05-06TOT3-1
2000-05-14AVL1-0
Manchester United2008-09 · 11 wins
2008-12-26STO1-0
2008-12-29MID1-0
2009-01-11CHE3-0
2009-01-14WIG1-0
2009-01-17BOL1-0
2009-01-27WBA5-0
2009-01-31EVE1-0
2009-02-08WHU1-0
2009-02-18FUL3-0
2009-02-21BLA2-1
2009-03-04NEW2-1
Liverpool2013-14 · 11 wins
2014-02-08ARS5-1
2014-02-12FUL3-2
2014-02-23SWA4-3
2014-03-01SOU3-0
2014-03-16MUN3-0
2014-03-22CAR6-3
2014-03-26SUN2-1
2014-03-30TOT4-0
2014-04-06WHU2-1
2014-04-13MCI3-2
2014-04-20NOR3-2
Streaks
#TeamSeasonStartedEndedWinsOpponents
1Manchester City2017-182017-08-262017-12-2718BOU, LIV, WAT, CRY, CHE, STO, BUR, WBA, ARS, LEI, HUD, SOU, WHU, MUN, SWA, TOT, BOU, NEW
2Liverpool2019-202019-10-272020-02-2418TOT, AVL, MCI, CRY, BHA, EVE, BOU, WAT, LEI, WOL, SHU, TOT, MUN, WOL, WHU, SOU, NOR, WHU
3Manchester City2020-212020-12-192021-03-0215SOU, NEW, CHE, BHA, CRY, AVL, WBA, SHU, BUR, LIV, TOT, EVE, ARS, WHU, WOL
4Manchester City2018-192019-02-032019-05-1214ARS, EVE, CHE, WHU, BOU, WAT, FUL, CAR, CRY, TOT, MUN, BUR, LEI, BHA
5Arsenal2001-022002-02-102002-05-1113EVE, FUL, NEW, DER, AVL, SUN, CHA, TOT, IPS, WHU, BOL, MUN, EVE
6Chelsea2016-172016-10-012016-12-3113HUL, LEI, MUN, SOU, EVE, MID, TOT, MCI, WBA, SUN, CRY, BOU, STO
7Manchester City2021-222021-11-062022-01-1512MUN, EVE, WHU, AVL, WAT, WOL, LEE, NEW, LEI, BRE, ARS, CHE
8Manchester City2022-232023-02-252023-05-2112BOU, NEW, CRY, LIV, SOU, LEI, ARS, FUL, WHU, LEE, EVE, CHE
9Manchester United1999-002000-03-112000-05-1411DER, LEI, BRA, WHU, MID, SUN, SOU, CHE, WAT, TOT, AVL
10Manchester United2008-092008-12-262009-03-0411STO, MID, CHE, WIG, BOL, WBA, EVE, WHU, FUL, BLA, NEW
11Liverpool2013-142014-02-082014-04-2011ARS, FUL, SWA, SOU, MUN, CAR, SUN, TOT, WHU, MCI, NOR
SQL Query Used
-- Longest winning streaks within a single season (11+ wins), one row per win game
copy (
    with team_games as (
        select
            match_id,
            season_label,
            kickoff_at,
            home_team_abbr as team_abbr,
            home_team_name as team_name,
            away_team_abbr as opponent_abbr,
            away_team_name as opponent_name,
            home_score as goals_for,
            away_score as goals_against,
            result = 'home_win' as is_win
        from "premier_league"."main"."fct_matches"
        union all
        select
            match_id,
            season_label,
            kickoff_at,
            away_team_abbr as team_abbr,
            away_team_name as team_name,
            home_team_abbr as opponent_abbr,
            home_team_name as opponent_name,
            away_score as goals_for,
            home_score as goals_against,
            result = 'away_win' as is_win
        from "premier_league"."main"."fct_matches"
    ),
    games_ranked as (
        select
            *,
            row_number() over (
                partition by team_abbr, season_label
                order by kickoff_at, match_id
            ) as rn_in_season
        from team_games
    ),
    wins as (
        select
            *,
            rn_in_season - row_number() over (
                partition by team_abbr
                order by season_label, kickoff_at, match_id
            ) as grp
        from games_ranked
        where is_win
    ),
    streaks as (
        select
            team_abbr,
            min(team_name) as team_name,
            season_label,
            grp,
            count(*) as streak_length,
            min(kickoff_at) as started_at
        from wins
        group by team_abbr, season_label, grp
        having count(*) > 10
    ),
    ranked_streaks as (
        select
            *,
            row_number() over (
                order by streak_length desc, started_at, team_name
            ) as streak_id
        from streaks
    )
    select
        rs.streak_id,
        rs.team_name,
        rs.season_label,
        rs.streak_length,
        date(w.kickoff_at) as match_date,
        w.opponent_abbr,
        w.opponent_name,
        cast(w.goals_for as varchar) || '-' || cast(w.goals_against as varchar) as score
    from ranked_streaks rs
    join wins w
        on w.team_abbr = rs.team_abbr
       and w.season_label = rs.season_label
       and w.grp = rs.grp
    order by rs.streak_id, w.kickoff_at, w.match_id
)
to 'assets/data/big_win_streaks.csv' (header, delimiter ',')