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

MySQL에서 COUNT 함수를 활용한 SELECT 쿼리 작성 방법

MySQL에서 COUNT와 함께 SELECT를 수행하려면 집계 함수인 COUNT()를 사용하면 됩니다. 이 함수는 지정된 컬럼의 값 개수를 세어 그룹별 결과를 반환합니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(100),
    Subject varchar(100)
    );
Query OK, 0 rows affected (0.54 sec)

2. 데이터 삽입하기

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

mysql> insert into DemoTable(Name,Subject) values('John','MySQL');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(Name,Subject) values('John','Java');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(Name,Subject) values('Carol','MongoDB');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(Name,Subject) values('Carol','Java');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(Name,Subject) values('Carol','MySQL');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(Name,Subject) values('John','MySQL');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable(Name,Subject) values('Carol','MongoDB');
Query OK, 1 row affected (0.26 sec)

3. 전체 레코드 조회하기

SELECT 문을 사용하여 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+----+-------+---------+
| Id | Name  | Subject |
+----+-------+---------+
| 1  | John  | MySQL   |
| 2  | John  | Java    |
| 3  | Carol | MongoDB |
| 4  | Carol | Java    |
| 5  | Carol | MySQL   |
| 6  | John  | MySQL   |
| 7  | Carol | MongoDB |
+----+-------+---------+
7 rows in set (0.00 sec)

4. COUNT를 사용한 SELECT 쿼리

다음은 GROUP BY 절과 함께 COUNT를 사용하여 이름별 과목 개수를 집계하는 쿼리입니다.

mysql> select Name,Subject,count(Subject) from DemoTable group by Subject,Name;

출력 결과

+-------+---------+----------------+
| Name  | Subject | count(Subject) |
+-------+---------+----------------+
| John  | MySQL   | 2              |
| John  | Java    | 1              |
| Carol | MongoDB | 2              |
| Carol | Java    | 1              |
| Carol | MySQL   | 1              |
+-------+---------+----------------+
5 rows in set (0.00 sec)

위 결과에서 확인할 수 있듯이, GROUP BY 절을 함께 사용하면 각 학생이 과목별로 몇 번 수강했는지 손쉽게 집계할 수 있습니다. 예를 들어 John은 MySQL을 2번, Carol은 MongoDB를 2번 수강한 것을 알 수 있습니다.