MySQLで平均値を求めるにはAVGを使います。基本的な構文である 「SELECT カラム名 FROM テーブル名」 のカラム名をAVG(カラム名)に変更するだけで、指定したカラムの平均値が算出されます。
今回は全体の平均を算出した後で、グループごとの平均値を算出していきます。
テーブルとデータの準備
「test」テーブルを作成します。カラムは「subject」「score」の2つ。
CREATE TABLE `test` ( `subject` varchar(20) NOT NULL, `score` int(3) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; データをINSERTします。科目名と点数です。 INSERT INTO `test` (`subject`, `score`) VALUES ('国語', 100), ('数学', 78), ('英語', 65), ('国語', 90), ('数学', 95), ('英語', 88), ('国語', 39), ('数学', 59), ('英語', 77);
全データの表示
INSERTしたデータを表示してみます。
SELECT * FROM test
全平均値の取得
今回は「score」カラムの合計値を出したいので、scoreをAVG()で囲みます。
SELECT AVG(score) FROM test
教科別の平均値の取得
GROUP BYに「subject」を指定し、科目別の平均値を取得してみます。
SELECT subject,AVG(score) FROM test GROUP BY subject