Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 고유 값을 계산하는 방법은 무엇입니까?

<시간/>

고유한 값을 계산하려면 집계 함수 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개의 고유한 값이 있음을 알려줍니다.