group by와 함께 집계 함수 count()를 사용할 수 있습니다. 구문은 다음과 같습니다.
select yourColumnName,count(*) as anyVariableName from yourtableName group by yourColumnName;
위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table CountSameValue -> ( -> Id int, -> Name varchar(100), -> Marks int -> ); Query OK, 0 rows affected (0.70 sec)
insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 쿼리는 다음과 같습니다.
mysql> insert into CountSameValue values(1,'Sam',67); Query OK, 1 row affected (0.17 sec) mysql> insert into CountSameValue values(2,'Mike',87); Query OK, 1 row affected (0.19 sec) mysql> insert into CountSameValue values(3,'Carol',67); Query OK, 1 row affected (0.24 sec) mysql> insert into CountSameValue values(4,'Bob',87); Query OK, 1 row affected (0.18 sec) mysql> insert into CountSameValue values(5,'John',71); Query OK, 1 row affected (0.17 sec) mysql> insert into CountSameValue values(6,'Adam',66); Query OK, 1 row affected (0.18 sec) mysql> insert into CountSameValue values(7,'David',71); Query OK, 1 row affected (0.20 sec) mysql> insert into CountSameValue values(8,'Maria',67); Query OK, 1 row affected (0.16 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다.
mysql> select *from CountSameValue;
다음은 출력입니다.
+------+-------+-------+ | Id | Name | Marks | +------+-------+-------+ | 1 | Sam | 67 | | 2 | Mike | 87 | | 3 | Carol | 67 | | 4 | Bob | 87 | | 5 | John | 71 | | 6 | Adam | 66 | | 7 | David | 71 | | 8 | Maria | 67 | +------+-------+-------+ 8 rows in set (0.00 sec)
다음은 컬럼에 값(마크)이 나타나는 횟수를 세는 쿼리입니다. 쿼리는 다음과 같습니다.
mysql> select Marks,count(*) as Total from CountSameValue group by Marks;
다음은 출력입니다.
+-------+-------+ | Marks | Total | +-------+-------+ | 67 | 3 | | 87 | 2 | | 71 | 2 | | 66 | 1 | +-------+-------+ 4 rows in set (0.00 sec)