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行書くだけで簡単に平均値の集計が可能です。売上データや成績データなどの統計処理にぜひ活用してください。
-
MySQLでテーブルの最後の10件のレコードを取得する方法
MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected
-
MySQLで現在選択中のデータベースを確認する方法|DATABASE()関数とstatusコマンドの使い方
MySQLに接続している際、「今どのデータベースを選択しているのか」を確認したい場面はよくあります。この記事では、DATABASE()関数やstatusコマンドを使って、現在選択中のデータベース名を簡単に確認する方法を解説します。 DATABASE()関数で選択中のデータベースを確認する MySQLでは、DUALテーブルに対してDATABASE()関数を実行することで、現在選択されているデータベース名を取得できます。 手順1:データベースを選択する まず、例として「business」というデータベースを選択してみましょう。以下のコマンドを実行します。 mysql> use busi