この質問の言い方がわかりませんが、複数の行に適用される集計クエリが必要です。うまくいけば、例がこれをより簡単にするはずです。次のデータがあると仮定します。
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
そして、各年の各プレーヤーについて、「キャリア年」、つまりプレーしている年数を計算したいと思います。
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
この変換を次のように表現するのは自然なことSELECT player, year, games, year - min(year) + 1 as cyear FROM baseball GROUP by player
ですが、集計クエリのルールにより、式はグループごとに 1 回だけ評価されます。
player | year | games | cyear
--------------------------------
ausmubr01 | 2006 | 139 | 1
bondsba01 | 2006 | 130 | 1
stairma01 | 2006 | 26 | 1
一般的にこの問題を克服するにはどうすればよいですか (つまり、この場合だけでなく、既存の列と集計関数で計算された単一のグループごとの数値を組み合わせて算術演算を実行する場合)?