Team Batting Season Stats Finder - Baseball
Current Search
For single seasons, from 1871 to 2025, in the regular season, sorted by descending Wins.
THIS QUESTION WAS ANSWERED USING
POWERED BY
Your All Access Pass to the
Baseball
Database
Go beyond the basics. Become a Stathead
Start Your FREE Trial
Display Query »
--------------------------------------
main
Page Setup Time: 0.00175 seconds
SELECT year_id as year_id_csk, year_id as year_id, ts.name_abbr as team_name_abbr, ts.link as team_link, comp_id, GROUP_CONCAT(DISTINCT sup_comp_seasons.name_abbr) as comp_name_abbr, SUM(games) AS games, SUM(wins) AS wins, SUM(losses) AS losses, SUM(wins)/(SUM(wins)+SUM(losses)) as team_win_loss_perc_csk, TRIM(LEADING '0' FROM ROUND(SUM(wins)/(SUM(wins)+SUM(losses)),3)) AS team_win_loss_perc, SUM(b_batters_used) AS b_batters_used, SUM(b_pa) AS b_pa, SUM(b_ab) AS b_ab, SUM(b_r) AS b_r, SUM(b_h) AS b_h, SUM(b_h - (b_doubles + b_triples + b_hr)) AS b_singles, SUM(b_doubles) AS b_doubles, SUM(b_triples) AS b_triples, SUM(b_hr) AS b_hr, SUM(b_rbi) AS b_rbi, SUM(b_sb) AS b_sb, SUM(b_cs) AS b_cs, SUM(b_bb) AS b_bb, SUM(b_so) AS b_so, IF(SUM(b_ab), SUM(b_h) / SUM(b_ab), NULL) as b_batting_avg_csk, TRIM(LEADING '0' FROM ROUND(IF(SUM(b_ab), SUM(b_h) / SUM(b_ab), NULL),3)) AS b_batting_avg, IF(SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0)) / SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), NULL) as b_onbase_perc_csk, TRIM(LEADING '0' FROM ROUND(IF(SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0)) / SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), NULL),3)) AS b_onbase_perc, IF(SUM(b_ab), SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / SUM(b_ab), NULL) as b_slugging_perc_csk, TRIM(LEADING '0' FROM ROUND(IF(SUM(b_ab), SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / SUM(b_ab), NULL),3)) AS b_slugging_perc, IF(SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0)) / SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), NULL) + IF(SUM(b_ab), SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / SUM(b_ab), NULL) as b_onbase_plus_slugging_csk, TRIM(LEADING '0' FROM ROUND(IF(SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0)) / SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), NULL) + IF(SUM(b_ab), SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / SUM(b_ab), NULL),3)) AS b_onbase_plus_slugging, IF(sum(b_tob_lg_avg) = 0 || sum(b_tb_lg_avg) = 0, NULL, 100*((SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / sum(b_tb_lg_avg)) + (SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0))/sum(b_tob_lg_avg)) - 1)) as b_onbase_plus_slugging_plus_csk, ROUND(IF(sum(b_tob_lg_avg) = 0 || sum(b_tb_lg_avg) = 0, NULL, 100*((SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / sum(b_tb_lg_avg)) + (SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0))/sum(b_tob_lg_avg)) - 1)),0) AS b_onbase_plus_slugging_plus, SUM(b_tb) AS b_tb, SUM(b_gidp) AS b_gidp, SUM(b_hbp) AS b_hbp, SUM(b_sh) AS b_sh, SUM(b_sf) AS b_sf, SUM(b_ibb) AS b_ibb, SUM(b_lob) AS b_lob, SUM(b_r)/SUM(b_games) as team_runs_pg_csk, ROUND(SUM(b_r)/SUM(b_games),1) AS team_runs_pg
FROM sup_team_seasons as ts
JOIN sup_phase_seasons USING (comp_id, phase_id, year_id)
JOIN sup_comp_seasons USING (comp_id, year_id)
WHERE year_id<=?
AND year_id>=?
AND sup_phase_seasons.type=?
GROUP BY year_id, team_id
ORDER BY wins DESC, year_id DESC, team_id LIMIT 0, 20
SQL PARAMS -- $VAR1 = [
2025,
1871,
'reg'
];
Query Time: 0.10 seconds
Table Build Time: 0.05 seconds
--------------------------------------
SH->PARAM -- $VAR1 = {
'year_max' => 2025,
'match' => 'team_season',
'year_min' => 1871,
'order_by' => 'wins',
'comp_type' => 'reg'
};
SH->PARAM_NO_DEFAULT -- $VAR1 = {
'year_max' => 2025,
'comp_type' => 'reg',
'year_min' => 1871
};
--------------------------------------
main
Page Setup Time: 0.00175 seconds
SELECT year_id as year_id_csk, year_id as year_id, ts.name_abbr as team_name_abbr, ts.link as team_link, comp_id, GROUP_CONCAT(DISTINCT sup_comp_seasons.name_abbr) as comp_name_abbr, SUM(games) AS games, SUM(wins) AS wins, SUM(losses) AS losses, SUM(wins)/(SUM(wins)+SUM(losses)) as team_win_loss_perc_csk, TRIM(LEADING '0' FROM ROUND(SUM(wins)/(SUM(wins)+SUM(losses)),3)) AS team_win_loss_perc, SUM(b_batters_used) AS b_batters_used, SUM(b_pa) AS b_pa, SUM(b_ab) AS b_ab, SUM(b_r) AS b_r, SUM(b_h) AS b_h, SUM(b_h - (b_doubles + b_triples + b_hr)) AS b_singles, SUM(b_doubles) AS b_doubles, SUM(b_triples) AS b_triples, SUM(b_hr) AS b_hr, SUM(b_rbi) AS b_rbi, SUM(b_sb) AS b_sb, SUM(b_cs) AS b_cs, SUM(b_bb) AS b_bb, SUM(b_so) AS b_so, IF(SUM(b_ab), SUM(b_h) / SUM(b_ab), NULL) as b_batting_avg_csk, TRIM(LEADING '0' FROM ROUND(IF(SUM(b_ab), SUM(b_h) / SUM(b_ab), NULL),3)) AS b_batting_avg, IF(SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0)) / SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), NULL) as b_onbase_perc_csk, TRIM(LEADING '0' FROM ROUND(IF(SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0)) / SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), NULL),3)) AS b_onbase_perc, IF(SUM(b_ab), SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / SUM(b_ab), NULL) as b_slugging_perc_csk, TRIM(LEADING '0' FROM ROUND(IF(SUM(b_ab), SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / SUM(b_ab), NULL),3)) AS b_slugging_perc, IF(SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0)) / SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), NULL) + IF(SUM(b_ab), SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / SUM(b_ab), NULL) as b_onbase_plus_slugging_csk, TRIM(LEADING '0' FROM ROUND(IF(SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0)) / SUM(b_ab + IFNULL(b_bb,0) + IFNULL(b_hbp,0) + IFNULL(b_sf,0)), NULL) + IF(SUM(b_ab), SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / SUM(b_ab), NULL),3)) AS b_onbase_plus_slugging, IF(sum(b_tob_lg_avg) = 0 || sum(b_tb_lg_avg) = 0, NULL, 100*((SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / sum(b_tb_lg_avg)) + (SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0))/sum(b_tob_lg_avg)) - 1)) as b_onbase_plus_slugging_plus_csk, ROUND(IF(sum(b_tob_lg_avg) = 0 || sum(b_tb_lg_avg) = 0, NULL, 100*((SUM(b_h + b_doubles + (2 * b_triples) + (3 * b_hr)) / sum(b_tb_lg_avg)) + (SUM(b_h + IFNULL(b_bb,0) + IFNULL(b_hbp,0))/sum(b_tob_lg_avg)) - 1)),0) AS b_onbase_plus_slugging_plus, SUM(b_tb) AS b_tb, SUM(b_gidp) AS b_gidp, SUM(b_hbp) AS b_hbp, SUM(b_sh) AS b_sh, SUM(b_sf) AS b_sf, SUM(b_ibb) AS b_ibb, SUM(b_lob) AS b_lob, SUM(b_r)/SUM(b_games) as team_runs_pg_csk, ROUND(SUM(b_r)/SUM(b_games),1) AS team_runs_pg
FROM sup_team_seasons as ts
JOIN sup_phase_seasons USING (comp_id, phase_id, year_id)
JOIN sup_comp_seasons USING (comp_id, year_id)
WHERE year_id<=?
AND year_id>=?
AND sup_phase_seasons.type=?
GROUP BY year_id, team_id
ORDER BY wins DESC, year_id DESC, team_id LIMIT 0, 20
SQL PARAMS -- $VAR1 = [
2025,
1871,
'reg'
];
Query Time: 0.10 seconds
Table Build Time: 0.05 seconds
--------------------------------------
SH->PARAM -- $VAR1 = {
'year_max' => 2025,
'match' => 'team_season',
'year_min' => 1871,
'order_by' => 'wins',
'comp_type' => 'reg'
};
SH->PARAM_NO_DEFAULT -- $VAR1 = {
'year_max' => 2025,
'comp_type' => 'reg',
'year_min' => 1871
};
Data coverage: Since 1871. Stats relying on play-by-play data are complete back to 1969, nearly complete back to 1950, and mostly complete back to 1912. Postseason data since 1903. Please see our data coverage page for details.


We're Social...for Statheads
Site Last Updated:
Question, Comment, Feedback, or Correction?
Subscribe to our Free Email Newsletter
Do you have a sports website? Or write about sports? We have tools and resources that can help you use sports data. Find out more.