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

MySQL에서 사용자 유형별로 사용자 수를 구하는 방법

MySQL에서는 GROUP BY 절과 COUNT() 함수를 함께 사용하면 사용자 유형별로 각각 몇 명의 사용자가 있는지 손쉽게 집계할 수 있습니다. 이번 글에서는 ENUM 타입으로 정의된 사용자 유형(UserType)을 기준으로 사용자 수를 조회하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다. 사용자 이름은 VARCHAR 타입으로, 사용자 유형은 ENUM 타입으로 정의합니다.

mysql> create table DemoTable
-> (
-> UserName varchar(20),
-> UserType ENUM('New User','Registered User')
-> );
Query OK, 0 rows affected (0.60 sec)

2. 샘플 데이터 삽입하기

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

mysql> insert into DemoTable values('Chris','New User');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('David','New User');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('Mike','Registered User');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('Sam','New User');
Query OK, 1 row affected (0.10 sec)

3. 전체 데이터 확인하기

SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select * from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----------+-----------------+
| UserName | UserType |
+----------+-----------------+
| Chris | New User |
| David | New User |
| Mike | Registered User |
| Sam | New User |
+----------+-----------------+
4 rows in set (0.00 sec)

4. 사용자 유형별 인원수 집계하기

사용자 유형별로 사용자 수를 구하는 핵심 쿼리입니다. COUNT(*) 함수와 GROUP BY 절을 함께 사용하면 됩니다.

mysql> select count(*),UserType from DemoTable group by UserType;

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

+----------+-----------------+
| count(*) | UserType |
+----------+-----------------+
| 3 | New User |
| 1 | Registered User |
+----------+-----------------+
2 rows in set (0.00 sec)

결과 해석

위 결과를 보면 'New User(신규 사용자)'는 총 3명, 'Registered User(등록 사용자)'는 총 1명인 것을 확인할 수 있습니다.

이처럼 GROUP BY 절은 특정 컬럼의 값별로 데이터를 그룹화하고, COUNT() 함수는 각 그룹에 속한 행의 개수를 반환합니다. 이 두 가지를 조합하면 카테고리별 통계, 상태별 주문 건수 등 다양한 집계 작업에 활용할 수 있습니다. 참고로 결과의 가독성을 높이고 싶다면 별칭(Alias)을 활용해 count(*) AS user_count처럼 컬럼명을 지정하는 것도 좋은 방법입니다.