Player Season & Career Stats Finder - Hockey

Find individual seasons, combined seasons, or number of seasons matching your criteria. • Video TutorialSample SearchesData Coverage
For single seasons, playing skater, in the regular season, sorted by descending Goals.
THIS QUESTION WAS ANSWERED USING
Stathead Hockey Logo POWERED BY Hockey Reference Logo
Your All Access Pass to the Hockey Database Go beyond the basics. Become a Stathead
Start Your FREE Trial
Display Query »
--------------------------------------

main

Page Setup Time: 0.00122 seconds

SELECT name_display, name_display_csk, sup_players.link as name_display_link, IFNULL(age, "") as age, GROUP_CONCAT(DISTINCT CONCAT('<a href="', 'DOMAIN', ts.link, '" target="_blank">', ts.name_abbr, '</a>')) as teams_played_for, year_id as year_id_csk, CONCAT(year_id-1,"-",SUBSTRING(year_id,3,2)) as year_id, is_complete_comp_season, SUBSTRING_INDEX(st.pos, '/', 1) as pos, GROUP_CONCAT(DISTINCT sup_comp_seasons.name_abbr) as comp_name_abbr, person_id, comp_id, phase_id, SUM(games) AS games, SUM(goals) AS goals, SUM(assists) AS assists, SUM(points) AS points, SUM(plus_minus) AS plus_minus, SUM(pen_min) AS pen_min, SUM(goals - (goals_pp + goals_sh)) AS goals_ev, SUM(goals_pp) AS goals_pp, SUM(goals_sh) AS goals_sh, SUM(goals_gw) AS goals_gw, SUM(shots) AS shots, SUM(goals*(year_id>=1960))/SUM(shots) as shot_pct_csk, ROUND(100 * (SUM(goals*(year_id>=1960))/SUM(shots)),1) AS shot_pct, SUM(time_on_ice)/60 as time_on_ice_csk, IF(SUM(st.time_on_ice),IF(
  MOD(SUM(time_on_ice), 60) = 60,
  CONCAT_WS(':', FLOOR(SUM(time_on_ice) / 60) + 1, '00'),
  CONCAT_WS(':', FLOOR(SUM(time_on_ice) / 60), LPAD(MOD(SUM(time_on_ice), 60),2,'0'))
  ),NULL) AS time_on_ice, SUM(faceoff_wins) AS faceoff_wins, SUM(faceoff_losses) AS faceoff_losses, SUM(faceoff_wins)/(SUM(faceoff_wins)+SUM(faceoff_losses)) as faceoff_percentage_csk, ROUND(100 * (SUM(faceoff_wins)/(SUM(faceoff_wins)+SUM(faceoff_losses))),1) AS faceoff_percentage, SUM(hits) AS hits, SUM(blocks) AS blocks
FROM sup_player_team_seasons as st
  JOIN sup_people USING (person_id)
  JOIN sup_players USING (person_id)
  JOIN sup_phase_seasons USING (comp_id, phase_id, year_id)
  JOIN sup_comp_seasons USING (comp_id, year_id)
  JOIN (SELECT team_id, year_id, name_abbr, link, phase_id, comp_id FROM sup_team_seasons) as ts USING (team_id, year_id, phase_id, comp_id)
WHERE phase_id=?
  AND st.pos != 'G'
  AND comp_id=? 
GROUP BY person_id, year_id
ORDER BY goals DESC, person_id LIMIT 0, 20

SQL PARAMS -- $VAR1 = [
          'NHL_RS',
          'NHL'
        ];

Query Time: 1.90 seconds
Table Build Time: 0.05 seconds


--------------------------------------
SH->PARAM -- $VAR1 = {
          'match' => 'player_season',
          'rookie' => 'N',
          'draft_pick_type' => 'overall',
          'comp_type' => 'reg',
          'pos' => 'S',
          'season_end' => -1,
          'order_by' => 'goals',
          'season_start' => 1,
          'comp_id' => 'NHL'
        };
SH->PARAM_NO_DEFAULT -- $VAR1 = {
          'comp_id' => 'NHL'
        };

Search Criteria

Click on the red text to pre-fill the form with various values

Sort By
Sorting options are only available for subscribers. Sign up now for a free trial.

Total Player Seasons Matching Criteria

Total Seasons Matching Criteria

Total Team Players Matching Criteria

Total Team Players Matching Criteria

Seasons
Season Type
Position (primary position for season)

Statistical Filters (G, A, PTS, PIM, etc.)

Team Filters (Team, Result, etc.)

Team
Team Success

Based on team's finish at the end of the season. For 2025-26 season, based on current standing. For combined season searches, only the seasons that match criteria are included in results. "By Division Finish" will use Conference or League finish when Division is not relevant.

Biographical Filters (Year of career, Age, etc...)

Age (as of 1/31 in that season)
to
Shoots (skaters) / Catches (goalies)
Year (of player's career)
to
Place of Birth
Alumni of Amateur Team
Draft Status

Only players who appeared in the league will appear in search results. When a player was drafted multiple times, the most recent draft information is shown. For the complete history of every player ever drafted, see the Draft section of Hockey Reference

Years
to
Round
to
Pick
to
Team

Status Filters (Active, Rookie, etc...)

Rookie Status

(under 26, <=25 games in prev. year, or <=6 in 2 previous. Prior to 1990-91, other definitions of rookie existed)

Active
Hall of Fame

You have edited your search criteria

or keep editing your search

clear changes

Fetching Results

Stathead spinner

Query Results

Subscribe to Stathead Hockey for full results.

Go inside the Hockey Reference database and access the sports search engine that was made for fans like you. Subscriptions start at just $9/month. Learn More.

Get your first month FREE

Already a paid subscriber? Log in for full results.

Data coverage: NHL all-time (since 1917-18) unless otherwise noted. Even Strength, Power Play, and Short-Handed Goals available since 1933-34. Plus/Minus and Shots available since 1959-60. Time on Ice available since 1998-99. Advanced stats (such as Corsi, Fenwick, and Expected Goals) since 2007-08.

If you utilize material unique to a Sports Reference site for a tweet, an article, or for research for a broadcast or podcast, please strongly consider citing this site as the source for the material. It would be greatly appreciated and would help us continue to produce this material.