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

PythonでMySQLのAVG()関数を使う方法をわかりやすく解説

AVG()関数は、MySQLに用意されている集計関数(算術関数)の一つです。名前の通り、テーブル内の数値型カラムの平均値を取得するために使用します。本記事では、PythonからMySQLを操作してAVG()関数を使う方法を、具体的なコード例とともに解説します。

AVG()関数の基本構文

SELECT AVG(column_name) FROM table_name

AVG()関数は指定したカラムの値の平均を計算し、単一の結果として返します。NULL値が含まれる場合、NULLは計算対象から除外される点にも注意してください。

PythonでAVG()関数を使用する手順

PythonからMySQLデータベースに接続し、AVG()関数を実行するには、以下の手順に従います。

  • mysql.connectorモジュールをインポートする

  • connect()メソッドを使ってデータベースとの接続を確立する

  • cursor()メソッドでカーソルオブジェクトを作成する

  • 適切なSQL文でクエリを作成する

  • execute()メソッドでSQLクエリを実行する

  • fetchall()などで結果を取得する

  • 接続を閉じる

サンプルテーブル

ここでは、次のような「Students」テーブルを例に説明します。

Students

+----------+-----------+
| name     | marks     |
+----------+-----------+
|     Rohit |    62    |
|     Rahul |    75    |
|     Inder |    99    |
|   Khushi |    49    |
|     Karan |    92    |
+----------+-----------+

このテーブルから、生徒たちの点数(marks)の平均値を取得することを目標とします。

実装例

import mysql.connector

db = mysql.connector.connect(
    host="your host",
    user="your username",
    password="your password",
    database="database_name"
)
cursor = db.cursor()

query1 = "SELECT AVG(marks) FROM Students"
cursor.execute(query1)
avg = cursor.fetchall()
print("平均点 :", avg)

db.close()

コードのポイント

  • connect():ホスト名、ユーザー名、パスワード、データベース名を指定してMySQLサーバーに接続します。

  • cursor():SQL文を実行するためのカーソルオブジェクトを生成します。

  • execute():作成したクエリ「SELECT AVG(marks) FROM Students」を実行します。

  • fetchall():実行結果をすべて取得し、タプル形式で返します。

  • close():処理完了後は必ず接続を閉じてリソースを解放しましょう。

実行結果

平均点 : [(Decimal('75.4'),)]

上記のように、Studentsテーブルの点数の平均値「75.4」が取得できました。結果はタプルのリスト形式で返されるため、実際のアプリケーションではavg[0][0]のようにインデックスを指定して値を取り出すのが一般的です。

まとめ

AVG()関数を使えば、MySQL側で簡単に平均値を計算できます。大量のデータを扱う場合も、Python側で計算するよりもデータベース側で集計した方が効率的です。SUM()やCOUNT()などの他の集計関数と組み合わせることで、より高度なデータ分析も可能になります。

  1. Pythonのitertools.accumulate関数で累積和(プレフィックスサム)配列を作る方法

    Pythonでは、リスト(配列)の累積和(プレフィックスサム)を簡単に求めることができます。標準ライブラリのitertoolsモジュールに含まれるaccumulate()関数を使えば、先頭の要素から順に値を加算していった「走査合計(ランニングトータル)」を返すイテレータを生成できます。 itertools.accumulate(iterable[, func])は、モジュール内の他の関数と同様に、イテレータを構築して返します。そのため、取得したイテレータにはforループやlist()など、ストリームを消費する処理を通じてアクセスします。デフォルトの動作は要素の合計(加算)ですが、扱える要素はD

  2. Pythonの%演算子(モジュロ演算子)とは?剰余計算の基本をわかりやすく解説

    Pythonの%演算子とは Pythonにおける「%(パーセント)」は、除算の余りを返す算術演算子です。「モジュロ演算子」あるいは「剰余演算子」と呼ばれ、複素数を除く数値型(int型やfloat型など)のオペランドに対して使用できます。 割り算の結果そのものではなく、「割った後に余る値」を求めたい場合に使う演算子である点がポイントです。 基本的な使い方とコード例 以下は、整数と浮動小数点数に対して%演算子を使った実際の実行例です。 >>> a=10 >>> a%3 1 >>> a%5 0 >>> b=12.5 >&