COUNT()와 SUM()은 테이블의 컬럼 값에 대해 산술 연산을 수행할 때 사용하는 MySQL 집계 함수입니다.
COUNT() 함수는 특정 조건을 만족하는 행(row)의 개수를 반환합니다.
SUM() 함수는 테이블의 특정 컬럼에 있는 숫자 값들의 합계를 반환하며, 이때 NULL 값은 자동으로 제외됩니다.
기본 문법
COUNT() 문법
SELECT COUNT(column_name) FROM table_name WHERE condition
SUM() 문법
SELECT SUM(column_name) FROM table_name
Python에서 COUNT()와 SUM() 함수를 사용하는 단계
- MySQL 커넥터(mysql.connector) 모듈을 임포트합니다.
- connect() 메서드를 사용하여 데이터베이스와 연결을 설정합니다.
- cursor() 메서드로 커서 객체를 생성합니다.
- 적절한 SQL 문장으로 쿼리를 작성합니다.
- execute() 메서드로 SQL 쿼리를 실행합니다.
- 작업이 끝나면 연결을 종료합니다.
예를 들어, 다음과 같은 "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
위 결과에서 볼 수 있듯이, 80점을 초과한 학생은 Inder(99점)와 Karan(92점)으로 총 2명이며, 전체 학생 점수의 합계는 377점입니다. 이처럼 COUNT()와 SUM() 함수를 Python과 함께 활용하면 데이터베이스에서 필요한 통계 정보를 손쉽게 조회할 수 있습니다.