Well, this has probably been done before but, among other things, I like to figure out how to do things myself. So …
For each player who batted during the 2017 season, where did they bat in the order, and how many times did they bat in each spot?
First things first:
the information used here was obtained free of charge from and is copyrighted by Retrosheet.
Regular season event files were downloaded from Retrosheet and stored in database tables. The data for each season was queried to determine who the first nine batters were in each and every game. Sounds simple enough, but the data had to be segregated into visiting team and home team for all games and then queried. The query was designed to find the first nine players who had a batting event (and not a baserunning event) from the start of each game. There were separate queries for home and away and these were then combined to provide the final table.
For 2017 it looks like this:
Coming soon (well, reasonably soon) the batting order tables for all seasons back to 1930 … and … regularly updated data for the 2018 season.