【MySQL】平均値を取得する(avg の使い方)

平均値を取得するには「AVG」関数を使います。

ここでは MySQLコマンド「AVG」の具体的な使い方を解説していきます。

 

「AVG」の基本

「AVG」は、「SELECT」などと組み合わせて使います。

以下のようにすると、指定したカラムの値の平均値を取得できます。

SELECT AVG(カラム名) FROM テーブル名;
メモ

SELECT 文の詳しい使い方はこちら

 

テーブル全体のデータの平均値を取得する

実際にMySQLサーバーに接続し、動作を確認してみましょう。

 

あらかじめ「test」データベースの「users」テーブルに、以下のようにデータが保存されている例で進めていきます。

name gender
age
佐藤 man 21
鈴木 woman 25
田中 woman 21
山田 man 32
吉田 man 32

データを保存するコマンド例

CREATE DATABASE test;
USE test;
CREATE TABLE users (name VARCHAR(100), gender VARCHAR(100), age INT);
INSERT INTO users (name, gender, age) VALUES ('佐藤', 'man', 21);
INSERT INTO users (name, gender, age) VALUES ('鈴木', 'woman', 25);
INSERT INTO users (name, gender, age) VALUES ('田中', 'woman', 21);
INSERT INTO users (name, gender, age) VALUES ('山田', 'man', 32);
INSERT INTO users (name, gender, age) VALUES ('吉田', 'man', 32);
メモ

CREATE DATABASE 文の詳しい使い方はこちら

USE 文の詳しい使い方はこちら

CREATE TABLE 文の詳しい使い方はこちら

INSERT INTO 文の詳しい使い方はこちら

 

それでは「users」テーブル全体の、「age」カラムの値の平均値を取得してみましょう。コマンドは以下。

SELECT AVG(age) FROM users;

 

コマンドを実行すると 以下のように結果が表示され、平均値が 26.2 であることがわかりました。

 

条件に一致するレコードの中での平均値を取得する

今度は WHERE も使って、条件に一致するレコードの中での平均値を取得してみましょう。

以下のようにすると、「gender」カラムの値が woman の、「age」カラムの値の平均値を取得できます。

SELECT AVG(age) FROM users WHERE gender = 'woman';

 

コマンドを実行すると 以下のように結果が表示され、平均値が 23 であることがわかりました。

メモ

WHERE の詳しい使い方はこちら

 

グループごとの平均値を取得する

今度は「GROUP BY」を使ってデータをグループ化し、それぞれのグループごとの平均値を取得してみましょう。

以下のようにすると、「gender」カラムのそれぞれの値ごとに、「age」カラムの値の平均値を取得することができます。

SELECT gender, AVG(age) FROM users GROUP BY gender;

 

コマンドを実行すると、以下のように結果が表示されました。

メモ

GROUP BY の詳しい使い方はこちら

 

まとめ

以上、MySQLコマンド「AVG」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「AVG」で指定したカラムの値の平均値を取得することができる。
  • 「GROUP BY」を組み合わせると、グループごとの平均値を取得することができる。