[python] PyMySQL을 이용하여 데이터베이스의 레코드를 그룹화하여 통계를 내는 방법을 알아본다.

개요

이번 포스트에서는 Python의 PyMySQL 라이브러리를 사용하여 데이터베이스의 레코드를 그룹화하여 통계를 내는 방법에 대해 알아보겠습니다. PyMySQL은 MySQL 데이터베이스와의 상호작용을 도와주는 라이브러리로, 데이터베이스 질의와 결과 처리를 간단하게 할 수 있습니다.

필요한 패키지 설치

먼저 PyMySQL 패키지를 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.

pip install PyMySQL

데이터베이스 연결

데이터베이스에 연결하기 위해 아래와 같은 코드를 사용합니다. 호스트, 사용자 이름, 암호, 데이터베이스 이름은 해당하는 정보로 바꿔주세요.

import pymysql

# 데이터베이스 연결 설정
connection = pymysql.connect(
    host='localhost',
    user='username',
    password='password',
    database='database_name'
)

질의 실행

그룹화된 통계를 얻기 위해 SQL 질의를 실행해야 합니다. 예를 들어, ‘orders’ 테이블에서 고객별로 주문 수를 알아보는 경우 다음과 같은 SQL 질의를 사용할 수 있습니다.

# SQL 질의 실행
query = "SELECT customer_id, COUNT(*) as total_orders FROM orders GROUP BY customer_id"
with connection.cursor() as cursor:
    cursor.execute(query)
    result = cursor.fetchall()

# 결과 출력
for row in result:
    print(f"Customer ID: {row['customer_id']}, Total Orders: {row['total_orders']}")

결과 처리

SQL 질의의 결과는 튜플 형태로 반환됩니다. 결과를 원하는 형식으로 처리할 수 있습니다. 예를 들어, 통계를 딕셔너리로 저장하고자 한다면 다음과 같은 코드를 사용할 수 있습니다.

# 결과 처리
stats = {}
for row in result:
    customer_id = row['customer_id']
    total_orders = row['total_orders']
    stats[customer_id] = total_orders

# 통계 출력
for customer_id, total_orders in stats.items():
    print(f"Customer ID: {customer_id}, Total Orders: {total_orders}")

데이터베이스 연결 종료

작업을 마친 후에는 데이터베이스 연결을 종료해야 합니다. 아래와 같은 코드를 사용하여 연결을 종료할 수 있습니다.

# 데이터베이스 연결 종료
connection.close()

결론

이번 포스트에서는 PyMySQL을 사용하여 데이터베이스의 레코드를 그룹화하여 통계를 내는 방법을 알아보았습니다. 데이터베이스 질의와 결과 처리를 통해 다양한 통계를 얻을 수 있으며, PyMySQL의 유연한 기능을 활용하여 데이터베이스와 상호작용할 수 있습니다.

더 많은 정보 및 예제 코드에 대해서는 PyMySQL 공식 문서를 참조하십시오.