PythonとMySQLでCOUNT()・SUM()関数を使う方法をわかりやすく解説
COUNT() と SUM() は、MySQLのテーブル内のカラム値に対して集計処理を行うための代表的な集計関数です。
COUNT() 関数は、指定した条件を満たす行数(レコード数)を返します。
SUM() 関数は、テーブル内の数値型カラムの合計値を返します。NULL値は自動的に無視される点に注意してください。
基本構文
COUNT() の構文
SELECT COUNT(column_name) FROM table_name WHERE condition
SUM() の構文
SELECT SUM(column_name) FROM table_name
PythonからMySQLでCOUNT()・SUM()を使う手順
PythonでMySQLのデータベースに対してこれらの関数を実行するには、以下の手順に従います。
mysql.connector モジュールをインポートする
connect() メソッドを使ってデータベースへの接続を確立する
cursor() メソッドでカーソルオブジェクトを作成する
適切なSQL文でクエリを作成する
execute() メソッドでSQLクエリを実行する
fetchall() などで結果を取得し、接続を閉じる
サンプルデータ
ここでは、次のような「Students」テーブルを例に説明します。
Students
+----------+-----------+ | name | marks | +----------+-----------+ | Rohit | 62 | | Rahul | 75 | | Inder | 99 | | Khushi | 49 | | Karan | 92 | +----------+-----------+
このテーブルに対して、「80点より高い得点を取った学生の人数」と「全学生の合計点」を取得したいとします。
コード例
import mysql.connector
db = mysql.connector.connect(host="your host", user="your username", password="your password", database="database_name")
cursor = db.cursor()
# 80点超の学生数をカウント
query1 = "SELECT COUNT(marks) FROM Students WHERE marks>80"
cursor.execute(query1)
cnt = cursor.fetchall()
print("Number of students :", cnt)
# 全学生の合計点を算出
query2 = "SELECT SUM(marks) FROM Students"
cursor.execute(query2)
sum_result = cursor.fetchall()
print("Sum of marks :", sum_result)
db.close()
実行結果
Number of students : 2 Sum of marks : 377
ポイントまとめ
COUNT() は条件に一致する行数を数えるのに使う。WHERE句と組み合わせることで、特定条件の件数を簡単に取得できる。
SUM() は数値カラムの合計を求めるのに使う。NULL値は計算対象外になる。
結果は fetchall() によってタプル形式で返されるため、必要に応じて取り出して利用する。
変数名に組み込み関数と同じ sum を使うと混乱のもとになるため、sum_result のように別名を付けるのが安全。
-
MySQLでSUM関数とFORMAT関数を組み合わせて集計結果をフォーマットする方法
MySQLでは、SUM()関数とFORMAT()関数を組み合わせることで、数値カラムの合計値を計算しつつ、結果を見やすい形式(桁区切りのカンマ付き・小数点以下の桁数指定)で表示できます。この記事では、実際にテーブルを作成し、データを挿入してから、SUM と FORMAT を組み合わせたクエリの実行方法を順を追って解説します。 1. テーブルの作成 まず、CREATE TABLE 文を使ってサンプル用のテーブルを作成します。ここでは、金額を格納する Amount カラム(FLOAT 型)を1つだけ持つシンプルなテーブルを用意しました。 mysql> create table DemoTa
-
Pythonで都市の緯度・経度を取得する方法|geopyライブラリの使い方を解説
都市の緯度と経度を取得したい場合、Pythonではgeopyモジュールが便利です。geopyは、サードパーティ製のジオコーダやさまざまなデータソースを利用して、住所・都市・国などの座標情報を特定できるライブラリです。 まず、geopyモジュールがインストールされていることを確認しましょう。未インストールの場合は、以下のコマンドでインストールできます。 pip install geopy 以下の例では、Nominatimというジオコーダを使用して、都市「ハイデラバード(Hyderabad)」の緯度と経度を取得します。 手順 geopyモジュールからNominatimジオコーダをインポートします