始める無料で始める

競技別のBMIバケット

夏季競技ごとに BMI がどのように異なるかを把握したいとします。これに答えるため、次の項目を含むレポートを作成してください。

  • sport: 夏季競技の名前
  • bmi_bucket: BMI を3つのグループに分割します: <.25, .25-.30, >.30
  • athletes: アスリートのユニーク数

定義: BMI = 100 * weight / (height squared)。

また、CASE 文は行ごとに評価され、2つ目の条件は1つ目が偽のときにのみ適用されます。これにより、すでに評価済みの条件を除外するための AND 文は不要です。

必要に応じて E:R 図 を参照してください。

この演習はコースの一部です

SQLでのレポーティング

コースを見る

演習の手順

  • summer_gamesathletes からデータを取得し、sportbmi_bucketathletes を表示するクエリを作成します。
  • ANDELSE を使わずに、CASE 文で bmi_bucket'<.25''.25-.30''>.30' の3つに分割します。
  • 集計していない列で GROUP BY を行います。
  • レポートは sport、次に athletes の降順で並べ替えます。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

-- Pull in sport, bmi_bucket, and athletes
SELECT 
	____,
    -- Bucket BMI in three groups: <.25, .25-.30, and >.30	
    CASE WHEN ____ THEN '<.25'
    WHEN ____ THEN '.25-.30'
    WHEN ____ THEN '>.30' END AS bmi_bucket,
    ____ AS athletes
FROM ____ AS s
JOIN ____ AS a
ON ____
-- GROUP BY non-aggregated fields
GROUP BY ____
-- Sort by sport and then by athletes in descending order
ORDER BY ____;
コードを編集して実行