1. 学ぶ
  2. /
  3. コース
  4. /
  5. SQL のデータ操作

Connected

演習

CASE と AVG を使って割合を計算

CASE 式は、THEN 句で指定した任意の値を返すことができます。これを集約関数と組み合わせることで、複雑な計算やデータの加工を柔軟に行えます。特に便利な使い方として、AVG 関数の中で CASE 式を使い、特定のデータ割合を計算する方法があります。

基本的な構文の例は次のとおりです:

AVG(CASE WHEN condition_is_met THEN 1
         WHEN condition_is_not_met THEN 0 END)

この方法で計算する場合、どのレコードを 0 とカウントするかを正確に指定することが重要です。指定が不正確だと、正しい計算結果を得られない場合があります。

ここでは、各国の勝ち・負け・引き分けの数を調べましょう。matches テーブルは、2013/2014 シーズンと 2014/2015 シーズンの試合データに絞り込まれています。

指示

100 XP
  • AVG() 関数の中の、CASE 式を完成させてください。 m.home_goal が m.away_goal に等しくない場合を条件とし、この条件を満たす場合は 0 を返すようにします。
  • このプロセスを繰り返し、'2014/2015' シーズンのホームの得点とアウェイの得点を比較し、ties_2014_2015 というエイリアスを付けてください。