SQLでクラスごとの平均スコアが70以上のクラスだけを表示する方法

この記事では、SQLを使用して学生のテストスコアデータから、クラスごとの平均スコアが70以上のクラスのみを表示する方法を具体的に解説します。このテクニックは教育機関や企業でのデータ分析、報告に非常に役立ちます。

目次

前提条件

テストデータ

この記事で使用するテストデータの一例を以下のテーブルで示します。

学生IDクラススコア
1数学80
2数学70
3数学60
4歴史90
5歴史85
テーブル1: テストスコアデータ

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
テーブル2: 平均スコアが70以上のクラス

まとめ

この記事では、SQLを使用してクラスごとの平均スコアが70以上のクラスを抽出する方法を解説しました。この方法は、特定の条件に基づいてデータを分析する際に非常に有用です。SQLの`GROUP BY`句と`AVG`関数、さらには`HAVING`句を使うことで、効率的にこのような問題を解決できます。

コメント

コメントする

目次