MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでデータベースの平均値を計算する方法|AVG関数の使い方を解説

MySQLでテーブル内の数値データの平均値を求めたい場合、AVG() 関数を使用します。AVG関数は指定したカラム(列)に含まれる値の平均を自動的に計算してくれる集計関数です。

AVG関数の基本構文

複数のカラムに対してそれぞれ平均値を求める場合は、以下のような構文になります。

SELECT avg(カラム名1) AS 別名1,
       avg(カラム名2) AS 別名2,
       avg(カラム名3) AS 別名3,
       ...
FROM テーブル名;

実際にサンプルテーブルを作ってみよう

ここでは、3つのINT型カラムを持つテーブル「demo31」を作成します。

mysql> create table demo31
-> (
-> value1 int,
-> value2 int,
-> value3 int
-> );
Query OK, 0 rows affected (2.27 sec)

INSERTコマンドでレコードを挿入する

次に、insertコマンドを使ってサンプルデータを登録します。

mysql> insert into demo31 values(34,55,67);
Query OK, 1 row affected (0.27 sec)

mysql> insert into demo31 values(50,60,70);
Query OK, 1 row affected (0.16 sec)

mysql> insert into demo31 values(100,200,300);
Query OK, 1 row affected (0.14 sec)

mysql> insert into demo31 values(10,300,200);
Query OK, 1 row affected (0.15 sec)

SELECT文で登録データを確認する

select文を実行して、テーブルの中身を表示してみましょう。

mysql> select *from demo31;

実行結果は以下の通りです。

+--------+--------+--------+
| value1 | value2 | value3 |
+--------+--------+--------+
|     34 |     55 |     67 |
|     50 |     60 |     70 |
|    100 |    200 |    300 |
|     10 |    300 |    200 |
+--------+--------+--------+
4 rows in set (0.00 sec)

AVG関数で各カラムの平均値を計算するクエリ

それでは、各カラム(value1、value2、value3)ごとの平均値を計算してみます。AS句で別名を付けることで、結果を見やすくできます。

mysql> select avg(value1) as Value1_AVG,
-> avg(value2) as Value2_AVG,
-> avg(value3) as Value3_AVG
-> from demo31;

実行すると、以下のような出力が得られます。

+------------+------------+------------+
| Value1_AVG | Value2_AVG | Value3_AVG |
+------------+------------+------------+
| 48.5000    | 153.7500   | 159.2500   |
+------------+------------+------------+
1 row in set (0.00 sec)

結果の解説と補足ポイント

  • value1 の平均:(34 + 50 + 100 + 10) ÷ 4 = 48.5
  • value2 の平均:(55 + 60 + 200 + 300) ÷ 4 = 153.75
  • value3 の平均:(67 + 70 + 300 + 200) ÷ 4 = 159.25

なお、AVG関数にはいくつか押さえておきたい特徴があります。まず、NULL値は自動的に除外されて計算されるため、欠損データがあっても正確な平均を求められます。また、対象となるレコードが1件も存在しない場合は、NULLが返される点に注意しましょう。

このようにAVG関数を使えば、SQL文を1行書くだけで簡単に平均値の集計が可能です。売上データや成績データなどの統計処理にぜひ活用してください。

  1. MySQLでテーブルの最後の10件のレコードを取得する方法

    MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected

  2. MySQLで現在選択中のデータベースを確認する方法|DATABASE()関数とstatusコマンドの使い方

    MySQLに接続している際、「今どのデータベースを選択しているのか」を確認したい場面はよくあります。この記事では、DATABASE()関数やstatusコマンドを使って、現在選択中のデータベース名を簡単に確認する方法を解説します。 DATABASE()関数で選択中のデータベースを確認する MySQLでは、DUALテーブルに対してDATABASE()関数を実行することで、現在選択されているデータベース名を取得できます。 手順1:データベースを選択する まず、例として「business」というデータベースを選択してみましょう。以下のコマンドを実行します。 mysql> use busi