Consultas combinadas agregadas y no agregadas en SQL

No estoy seguro de cómo formular esta pregunta, pero quiero una consulta agregada aplicada a varias filas. Esperemos que un ejemplo lo haga más fácil. Suponiendo que tengo los siguientes datos:

  player  | year | games
-------------------------
ausmubr01 | 2006 | 139
ausmubr01 | 2007 | 117
bondsba01 | 2006 | 130
bondsba01 | 2007 | 126
stairma01 | 2006 | 26
stairma01 | 2006 | 77
stairma01 | 2006 | 14
stairma01 | 2007 | 125

Y para cada jugador en cada año, quiero calcular su "año de carrera", es decir, la cantidad de años que han estado jugando:

  player  | year | games | cyear
 --------------------------------
ausmubr01 | 2006 | 139   |  1
ausmubr01 | 2007 | 117   |  2
bondsba01 | 2006 | 130   |  1
bondsba01 | 2007 | 126   |  2
stairma01 | 2006 | 26    |  1
stairma01 | 2006 | 77    |  2
stairma01 | 2006 | 14    |  3
stairma01 | 2007 | 125   |  4

Sería natural expresar esta transformación comoSELECT player, year, games, year - min(year) + 1 as cyear FROM baseball GROUP by player pero debido a las reglas para las consultas agregadas, la expresión solo se evalúa una vez para cada grupo:

  player  | year | games | cyear
 --------------------------------
ausmubr01 | 2006 | 139   |  1
bondsba01 | 2006 | 130   |  1
stairma01 | 2006 | 26    |  1

¿Cómo puedo superar este problema en general (es decir, no solo para este caso sino siempre que quiera realizar una operación aritmética combinando una columna existente y un solo número por grupo calculado con una función agregada)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta