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


