Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL GROUP BY와 COUNT로 각 FileID별 항목 개수 집계하기

개요

MySQL에서 테이블에 저장된 데이터를 분석할 때, 특정 컬럼 값별로 레코드가 몇 번 등장하는지 집계해야 하는 경우가 자주 있습니다. 이번 글에서는 IdFileID 컬럼을 가진 테이블에서 각 FileID별 항목 개수를 구하는 쿼리를 예제와 함께 살펴보겠습니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FileID int
) AUTO_INCREMENT=100;
Query OK, 0 rows affected (1.36 sec)

Id 컬럼은 자동 증가(AUTO_INCREMENT) 기본키로 설정했으며, 시작값을 100으로 지정했습니다.

2. 샘플 데이터 삽입

INSERT 명령을 사용해 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable(FileID) values(50);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(FileID) values(60);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(FileID) values(50);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(FileID) values(70);
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable(FileID) values(60);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable(FileID) values(50);
Query OK, 1 row affected (0.32 sec)

3. 저장된 데이터 확인

SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+-----+---------+
| Id  | FileID  |
+-----+---------+
| 100 |      50 |
| 101 |      60 |
| 102 |      50 |
| 103 |      70 |
| 104 |      60 |
| 105 |      50 |
+-----+---------+
6 rows in set (0.00 sec)

총 6개의 레코드가 있으며, FileID 값은 50, 60, 70 세 종류입니다.

4. FileID별 항목 개수 집계 쿼리

각 FileID가 몇 번 등장하는지 확인하려면 COUNT() 함수와 GROUP BY 절을 함께 사용합니다.

mysql> select FileID,COUNT(FieldId) AS EntryCount from DemoTable group by FileID;

실행 결과는 다음과 같습니다.

+---------+------------+
| FileID  | EntryCount |
+---------+------------+
|      50 |          3 |
|      60 |          2 |
|      70 |          1 |
+---------+------------+
3 rows in set (0.00 sec)

결과 해석

  • FileID 50: 3번 등록됨
  • FileID 60: 2번 등록됨
  • FileID 70: 1번 등록됨

GROUP BY FileID가 동일한 FileID 값을 가진 행들을 하나의 그룹으로 묶어주고, COUNT() 함수가 각 그룹의 행 개수를 계산합니다. AS EntryCount를 사용해 결과 컬럼에 별칭을 부여하면 출력 결과를 더욱 직관적으로 확인할 수 있습니다.

마무리

이처럼 GROUP BYCOUNT()의 조합은 MySQL에서 카테고리별 빈도수를 집계할 때 가장 널리 쓰이는 패턴입니다. 로그 분석, 파일 참조 횟수 확인, 중복 데이터 점검 등 다양한 상황에서 활용할 수 있으니 꼭 익혀두시기 바랍니다.