career regular season statistics    
  
  | Year | Team | League | 
        GP         Games Played 
       | 
      
        AB         At Bats	 
       | 
      
        R         Runs	 
       | 
      
        H         Hits	 
       | 
      
        2B         Doubles	 
       | 
      
        3B         Triples	 
       | 
      
        HR         Home Runs	 
       | 
      
        RBI         Runs Batted In	 
       | 
      
        BB         Walks	 
       | 
      
        SO         Strikeouts	 
       | 
      
        SB         Stolen Bases	 
       | 
      
        CS         Caught Stealing	 
       | 
      
        AVG         Batting Average	 
       | 
      
        OBP         On-Base Percentage	 
       | 
      
        SLG         Slugging Percentage 
       | 
      
        OPS         On-Base Plus Slugging 
       | 
    
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025 | San Diego | NL | 135 | 419 | 61 | 103 | 20 | 1 | 11 | 59 | 69 | 107 | 3 | 3 | .246 | .367 | .377 | .744 | 
| 2024 | San Diego | NL | 155 | 577 | 72 | 139 | 29 | 3 | 17 | 83 | 61 | 118 | 5 | 2 | .241 | .324 | .390 | .714 | 
| 2023 | San Diego | NL | 127 | 458 | 54 | 105 | 24 | 7 | 10 | 48 | 46 | 97 | 6 | 1 | .229 | .312 | .378 | .689 | 
| 2022 | San Diego | NL | 158 | 587 | 88 | 140 | 31 | 4 | 17 | 88 | 70 | 131 | 3 | 0 | .240 | .333 | .394 | .727 | 
| 2021 | San Diego | NL | 152 | 567 | 94 | 151 | 33 | 7 | 21 | 71 | 55 | 90 | 4 | 3 | .266 | .340 | .460 | .800 | 
| 2020 | San Diego | NL | 54 | 172 | 26 | 49 | 15 | 3 | 4 | 20 | 18 | 30 | 3 | 1 | .285 | .354 | .477 | .831 | 
| 2019 | Durham | AAA | 88 | 344 | 75 | 115 | 26 | 4 | 10 | 45 | 49 | 62 | 12 | 5 | .334 | .429 | .520 | .949 | 
| 2019 | GCL Rays | R | 3 | 12 | 2 | 2 | 1 | 0 | 0 | 0 | 1 | 2 | 0 | 0 | .167 | .231 | .250 | .481 | 
| 2018 | Durham | AAA | 7 | 25 | 4 | 6 | 3 | 0 | 0 | 2 | 1 | 5 | 1 | 0 | .240 | .269 | .360 | .629 | 
| 2018 | Montgomery | AA | 108 | 418 | 75 | 106 | 18 | 4 | 4 | 50 | 43 | 69 | 21 | 3 | .254 | .323 | .344 | .668 | 
| 2017 | Montgomery | AA | 38 | 158 | 15 | 45 | 6 | 0 | 1 | 20 | 19 | 19 | 1 | 1 | .285 | .363 | .342 | .705 | 
| 2017 | Charlotte | A | 87 | 328 | 58 | 88 | 16 | 5 | 2 | 29 | 47 | 69 | 12 | 5 | .268 | .364 | .366 | .730 | 
| 2016 | Bowling Green | A | 81 | 314 | 66 | 101 | 15 | 6 | 3 | 48 | 54 | 57 | 12 | 7 | .322 | .429 | .436 | .865 | 
| 2016 | Charlotte | A | 35 | 111 | 15 | 19 | 3 | 1 | 1 | 9 | 13 | 26 | 2 | 1 | .171 | .270 | .243 | .513 | 
| 2015 | Hudson Valley | R | 51 | 196 | 31 | 57 | 12 | 3 | 1 | 16 | 31 | 59 | 12 | 7 | .291 | .399 | .398 | .797 | 
| 2015 | Michigan | NCAA | 64 | 269 | 62 | 91 | 18 | 3 | 6 | 48 | 34 | 28 | 11 | 9 | .338 | .419 | .494 | - | 
| 2014 | Michigan | NCAA | 60 | 205 | 41 | 55 | 6 | 4 | 2 | 28 | 41 | 34 | 19 | 4 | .268 | .391 | .366 | - | 
| 2013 | Michigan | NCAA | 56 | 203 | 33 | 65 | 12 | 2 | 2 | 42 | 22 | 21 | 12 | 4 | .320 | .386 | .429 | - | 
| - | Total | NL | 781 | 2780 | 395 | 687 | 152 | 25 | 80 | 369 | 319 | 573 | 24 | 10 | .247 | .335 | .406 | .742 | 
| - | Total | AAA | 95 | 369 | 79 | 121 | 29 | 4 | 10 | 47 | 50 | 67 | 13 | 5 | .328 | .419 | .509 | .928 | 
| - | Total | AA | 146 | 576 | 90 | 151 | 24 | 4 | 5 | 70 | 62 | 88 | 22 | 4 | .262 | .335 | .344 | .679 | 
| - | Total | A | 203 | 753 | 139 | 208 | 34 | 12 | 6 | 86 | 114 | 152 | 26 | 13 | .276 | .379 | .377 | .756 | 
| - | Total | R | 54 | 208 | 33 | 59 | 13 | 3 | 1 | 16 | 32 | 61 | 12 | 7 | .284 | .390 | .389 | .780 | 
| - | Total | NCAA | 180 | 677 | 136 | 211 | 36 | 9 | 10 | 118 | 97 | 83 | 42 | 17 | .312 | .400 | .436 | .836 |