profile picture

Regular Season開幕からの連勝数ランキング

November 28, 2024 - nba

2024-25シーズン、Cavsが開幕から負けなしで15連勝を果たした。

この連勝記録は歴代でどの位の位置にいるのかを調べた。

歴代の開幕からの連勝数

シーズンチーム開幕からの連勝数
2015-16Golden State Warriors24
1948-49Washington Capitols15
1993-94Houston Rockets15
2024-25Cleveland Cavaliers15
1957-58Boston Celtics14
2002-03Dallas Mavericks14
1982-83Seattle SuperSonics12
1996-97Chicago Bulls12
1964-65Boston Celtics11
1990-91Portland Trail Blazers11

2000-01シーズンからに限定すると下記のようになる。

2000-01シーズンからの開幕からの連勝数

シーズンチーム名開幕からの連勝数
2015-16Golden State Warriors24
2024-25Cleveland Cavaliers15
2002-03Dallas Mavericks14
2000-01Philadelphia 76ers10
2013-14Indiana Pacers9
2022-23Milwaukee Bucks9
2005-06Detroit Pistons8
2007-08Boston Celtics8
2010-11Los Angeles Lakers8
2010-11New Orleans Hornets8
-- (シーズン, チーム)ごとに試合日を順番付ける
WITH GameResults AS (
  SELECT
    SEASON_ID,
    TEAM_ID,
    TEAM_NAME,
    GAME_DATE,
    WL,
    ROW_NUMBER() OVER (PARTITION BY SEASON_ID, TEAM_ID ORDER BY GAME_DATE) AS game_order
  FROM
    `nba.leaguegamelog2_team`
  WHERE
    _SEASON_TYPE = "Regular Season"
),
-- 負けの数を計算
-- (シーズン, チーム)で一番最初の行から和を計算していく
-- 1回でも以前に負けたことがあると, その行は1以上になる
WinStreaks AS (
  SELECT
    SEASON_ID,
    TEAM_ID,
    TEAM_NAME,
    GAME_DATE,
    game_order,
    WL,
    CASE
      WHEN WL = 'L' THEN 0
      ELSE 1
    END AS win_flag,
    SUM(CASE WHEN WL = 'L' THEN 1 ELSE 0 END) OVER (
      PARTITION BY SEASON_ID, TEAM_ID ORDER BY game_order ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
    ) AS loss_count
  FROM
    GameResults
),
-- それまでの試合で負けが無い試合をフィルタ
FilteredStreaks AS (
  SELECT
    SEASON_ID,
    TEAM_ID,
    TEAM_NAME,
    game_order,
    win_flag,
    loss_count
  FROM
    WinStreaks
  WHERE
    loss_count = 0
),
-- 1敗も無い試合数をカウントすると, 連勝数と解釈できる
FinalResult AS (
  SELECT
    SEASON_ID,
    TEAM_ID,
    TEAM_NAME,
    COUNT(*) AS opening_win_streak
  FROM
    FilteredStreaks
  GROUP BY
    SEASON_ID, TEAM_ID, TEAM_NAME
)
SELECT
  SEASON_ID,
  TEAM_ID,
  TEAM_NAME,
  opening_win_streak
FROM
  FinalResult
ORDER BY
  opening_win_streak DESC,
  SEASON_ID
LIMIT 10;