이를 위해 집계 함수 count(*)를 사용하여 그룹화할 GROUP BY로 계산합니다. 먼저 테이블을 생성하겠습니다 -
mysql> create table DemoTable ( UserName varchar(100), UserPostMessage text ); Query OK, 0 rows affected (0.54 sec)
삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -
mysql> insert into DemoTable values('Chris','Hi'); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values('David','Hello'); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values('Chris','Awesome'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('Chris','Amazing'); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values('David','Nice Place'); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values('Chris','Amazing'); Query OK, 1 row affected (0.12 sec)
select 문을 사용하여 테이블의 모든 레코드 표시 -
mysql> select *from DemoTable;
이것은 다음과 같은 출력을 생성합니다 -
+----------+-----------------+ | UserName | UserPostMessage | +----------+-----------------+ | Chris | Hi | | David | Hello | | Chris | Awesome | | Chris | Amazing | | David | Nice Place | | Chris | Amazing | +----------+-----------------+ 6 rows in set (0.00 sec)
다음은 내 MySQL 데이터베이스의 열에서 고유한 레코드를 계산하는 쿼리입니다. -
mysql> select UserName,count(DISTINCT UserPostMessage) AS NumberOfMessagesPostByUser from DemoTable group by UserName;
이것은 다음과 같은 출력을 생성합니다 -
+----------+----------------------------+ | UserName | NumberOfMessagesPostByUser | +----------+----------------------------+ | Chris | 3 | | David | 2 | +----------+----------------------------+ 2 rows in set (0.00 sec)