MySQL에서 특정 값의 개수 세기
MySQL에서는 COUNT(*) 함수와 WHERE 절을 함께 사용하면 열에 있는 특정 값이 몇 번 등장하는지 쉽게 확인할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, 'Chris'라는 이름이 몇 번 저장되어 있는지 직접 확인해 보겠습니다.
1단계: 테이블 생성하기
먼저 아래와 같이 테이블을 생성합니다.
mysql> create table DemoTable
(
Id int,
Name varchar(100)
);
Query OK, 0 rows affected (1.40 sec)2단계: 데이터 삽입하기
INSERT 명령을 사용해 테이블에 여러 레코드를 추가합니다.
mysql> insert into DemoTable values(100,'John'); Query OK, 1 row affected (0.44 sec) mysql> insert into DemoTable values(101,'Chris'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(102,'Chris'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(103,'Chris'); Query OK, 1 row affected (1.05 sec) mysql> insert into DemoTable values(104,'David'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(105,'Chris'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(106,'Carol'); Query OK, 1 row affected (0.24 sec) mysql> insert into DemoTable values(107,'Bob'); Query OK, 1 row affected (0.18 sec)
3단계: 전체 레코드 조회하기
SELECT 문으로 테이블의 모든 데이터를 확인합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+------+-------+ | Id | Name | +------+-------+ | 100 | John | | 101 | Chris | | 102 | Chris | | 103 | Chris | | 104 | David | | 105 | Chris | | 106 | Carol | | 107 | Bob | +------+-------+ 8 rows in set (0.00 sec)
4단계: 특정 값의 개수 구하기
이제 WHERE 절과 COUNT(*)를 조합하여 'Chris'라는 값이 몇 개 있는지 세어 보겠습니다.
mysql> select count(*) from DemoTable where Name='Chris';
실행 결과는 다음과 같습니다.
+----------+ | count(*) | +----------+ | 4 | +----------+ 1 row in set (0.00 sec)
추가 팁: 여러 값의 개수를 한 번에 세기
만약 각 이름별로 등장 횟수를 한꺼번에 알고 싶다면 GROUP BY 절을 활용할 수 있습니다.
mysql> select Name, count(*) as Cnt
from DemoTable
group by Name;이렇게 하면 'John', 'Chris', 'David', 'Carol', 'Bob' 각각의 개수를 한 번의 쿼리로 확인할 수 있어, 데이터 분석 시 매우 유용합니다.