MySQL에서 특정 단어(값)가 열에 몇 번 나타나는지 확인하고 싶다면 COUNT() 함수를 활용하면 됩니다. 이 글에서는 예제 테이블을 만들고, 특정 직원 이름이 몇 번 등장하는지 단계별로 확인해 보겠습니다.
1. 테이블 생성하기
먼저 예제로 사용할 테이블을 생성합니다.
mysql> create table DemoTable
-> (
-> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName varchar(100)
-> );
Query OK, 0 rows affected (0.62 sec)
2. 데이터 삽입하기
INSERT 명령을 사용해 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable(EmployeeName) values('John');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable(EmployeeName) values('Carol');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(EmployeeName) values('David');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(EmployeeName) values('Carol');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(EmployeeName) values('Carol');
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable(EmployeeName) values('Bob');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable(EmployeeName) values('Sam');
Query OK, 1 row affected (0.12 sec)
3. 전체 데이터 조회하기
SELECT 문을 사용해 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
출력 결과
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | 1 | John | | 2 | Carol | | 3 | David | | 4 | Carol | | 5 | Carol | | 6 | Bob | | 7 | Sam | +------------+--------------+ 7 rows in set (0.00 sec)
4. 특정 단어의 등장 횟수 구하기
아래 쿼리는 MySQL에서 특정 단어가 열에 나타나는 횟수를 구하는 방법입니다. 여기서는 직원 이름 중 'Carol'이 몇 번 등장하는지 확인해 보겠습니다.
mysql> select EmployeeName,count(EmployeeId) as Occurrence from DemoTable where EmployeeName='Carol';
출력 결과
+--------------+------------+ | EmployeeName | Occurrence | +--------------+------------+ | Carol | 3 | +--------------+------------+ 1 row in set (0.05 sec)
실행 결과를 보면 'Carol'이라는 이름이 총 3번 나타난 것을 확인할 수 있습니다.
참고: GROUP BY로 모든 값의 개수 한 번에 구하기
특정 값 하나가 아니라 열에 있는 모든 값의 등장 횟수를 한 번에 알고 싶다면 GROUP BY 절을 함께 사용하면 편리합니다.
mysql> select EmployeeName, count(EmployeeId) as Occurrence
-> from DemoTable
-> group by EmployeeName;
이 쿼리를 실행하면 각 이름별로 등장 횟수가 한꺼번에 출력되므로, 데이터 분석 시 WHERE 조건을 반복해서 실행할 필요 없이 효율적으로 집계할 수 있습니다.