값을 그룹화하고 여러 값을 제거한 개수를 표시하려면 GROUP BY를 COUNT(*)와 함께 사용해야 합니다. 먼저 테이블을 생성해 보겠습니다.
mysql> create table DemoTable (Value int); Query OK, 0 rows affected (0.55 sec)
다음은 삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하는 쿼리입니다.
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(30); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable values(60); Query OK, 1 row affected (0.25 sec)
다음은 select 명령을 사용하여 테이블의 레코드를 표시하는 쿼리입니다.
mysql> select *from DemoTable;
그러면 다음과 같은 출력이 생성됩니다.
+-------+ | Value | +-------+ | 10 | | 20 | | 10 | | 30 | | 10 | | 20 | | 40 | | 10 | | 20 | | 20 | | 60 | +-------+ 11 rows in set (0.00 sec)
다음은 유사한 레코드의 수(예:우리의 경우 10, 20, 30, 40, 60)를 반환하는 쿼리입니다.
mysql> SELECT COUNT(*) FROM (SELECT *FROM DemoTable GROUP BY Value) AS tbl;
그러면 다음과 같은 출력이 생성됩니다.
+----------+ | COUNT(*) | +----------+ | 5 | +----------+ 1 row in set (0.00 sec)