고유한 값을 계산하려면 집계 함수 count()에서 고유한 값을 사용할 수 있습니다.
구문은 다음과 같습니다 -
select count(distinct yourColumnName) as anyVariableName from yourTableName;
위의 개념을 이해하기 위해 테이블을 만들어 보겠습니다. 다음은 테이블을 생성하는 쿼리입니다 -
mysql> create table DistinctDemo −> ( −> Name varchar(200) −> ); Query OK, 0 rows affected (0.58 sec)
이 예에서는 테이블에 중복 레코드를 삽입해 보겠습니다. 레코드를 삽입하는 쿼리는 다음과 같습니다 -
mysql> insert into DistinctDemo values('John'); Query OK, 1 row affected (0.15 sec) mysql> insert into DistinctDemo values('Sam'); Query OK, 1 row affected (0.17 sec) mysql> insert into DistinctDemo values('John'); Query OK, 1 row affected (0.12 sec) mysql> insert into DistinctDemo values('Johnson'); Query OK, 1 row affected (0.13 sec) mysql> insert into DistinctDemo values('John'); Query OK, 1 row affected (0.10 sec) mysql> insert into DistinctDemo values('Johnson'); Query OK, 1 row affected (0.12 sec) mysql> insert into DistinctDemo values('Sam'); Query OK, 1 row affected (0.14 sec) mysql> insert into DistinctDemo values('Johnson'); Query OK, 1 row affected (0.10 sec)
select 문을 사용하여 모든 레코드를 표시합니다. 모든 레코드를 표시하는 쿼리는 다음과 같습니다. -
mysql> select *from DistinctDemo;
다음은 일부 중복 레코드를 표시하는 출력입니다 -
+---------+ | Name | +---------+ | John | | Sam | | John | | Johnson | | John | | Johnson | | Sam | | Johnson | +---------+ 8 rows in set (0.00 sec)
다음은 테이블에서 고유한 값을 계산하는 데 사용할 수 있는 쿼리입니다. -
mysql> select count(distinct Name) as DistinctValues from DistinctDemo;
다음은 출력입니다 -
+----------------+ | DistinctValues | +----------------+ | 3 | +----------------+ 1 row in set (0.01 sec)
결과 i3은 테이블에 3개의 고유한 값이 있음을 알려줍니다.