MySQL で前の値を使用して次の値を計算する方法は? 私の下手な英語では、私の意味をこれ以上明確に説明できませんでした (この投稿のタイトルを見て、私が尋ねたことを理解できる人はいますか?) ので、スニペットで説明させてください。
select
year_id,
sum(case when event_cd >= 20 then 1 else 0 end) as h,
sum(case when ab_fl = "T" then 1 else 0 end) as ab,
h/ab as ba
from events
group by year_id
上記のスニペットでは、クエリを実行すると、events
テーブルにh
またはのような列がないため、エラーが発生しますab
。ただし、前の構文で計算されるh
andを使用したいと思います。それを可能にする方法がいくつかあったことは覚えていますが、方法も覚えていませんし、私が言ったように、英語が下手なため、私が求めているものに関連する投稿を見つけることができませんでした。この質問はすでにSOに投稿されていると確信しています。詳細な説明なしでリンクするだけでも非常に役立ちます。ab
sum(case when ~)
ありがとう。
[アップデート]
答えてくれてありがとう。サブクエリを回避するために以前の値を使用したかったため、多くの冗長な入力が行われ、コード全体が読みやすくなりました。Mosty Mostacho で説明されているように、いずれかの方法 (サブクエリまたは別の値を計算するためだけに構文全体を 2 回記述する) を使用しましたが、MySQL でこれを使用するのが現実的でないかかなり危険な場合は、上記の 2 つの方法を確実に受け入れることができます。混乱させて申し訳ありません。