この記事では、SQLを使用して学生のテストスコアデータから、クラスごとの平均スコアが70以上のクラスのみを表示する方法を具体的に解説します。このテクニックは教育機関や企業でのデータ分析、報告に非常に役立ちます。
目次
前提条件
テストデータ
この記事で使用するテストデータの一例を以下のテーブルで示します。
学生ID | クラス | スコア |
---|---|---|
1 | 数学 | 80 |
2 | 数学 | 70 |
3 | 数学 | 60 |
4 | 歴史 | 90 |
5 | 歴史 | 85 |
SQLの基本
GROUP BY句
SQLで平均を求める際、特定の列(この場合はクラス)に基づいてデータをグループ化する必要があります。このためには`GROUP BY`句を使用します。
AVG関数
平均値を計算するには、SQLの`AVG`関数を使用します。この関数は、指定された列の平均値を求めます。
手順
ステップ1: クラスごとの平均スコアを計算する
最初に、各クラスごとの平均スコアを計算します。
SELECT クラス, AVG(スコア) as 平均スコア
FROM テストスコア
GROUP BY クラス;
ステップ2: 平均スコアが70以上のクラスをフィルタリング
次に、平均スコアが70以上のクラスのみをフィルタリングします。
SELECT クラス, AVG(スコア) as 平均スコア
FROM テストスコア
GROUP BY クラス
HAVING AVG(スコア) >= 70;
ステップ3: 結果の確認
上記のクエリを実行すると、以下のような結果が得られるでしょう。
クラス | 平均スコア |
---|---|
数学 | 70 |
歴史 | 87.5 |
まとめ
この記事では、SQLを使用してクラスごとの平均スコアが70以上のクラスを抽出する方法を解説しました。この方法は、特定の条件に基づいてデータを分析する際に非常に有用です。SQLの`GROUP BY`句と`AVG`関数、さらには`HAVING`句を使うことで、効率的にこのような問題を解決できます。
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
コメント