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

MySQL COUNT()와 DISTINCT를 함께 사용할 수 있습니까?

<시간/>

예, COUNT() 및 DISTINCT를 함께 사용하여 고유한 행의 수만 표시할 수 있습니다.

구문은 다음과 같습니다 -

SELECT COUNT(DISTINCT yourColumnName) AS anyVariableName FROM yourTableName;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다.

테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> 테이블 생성 CountDistinctDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> PRIMARY KEY(Id) -> );쿼리 OK, 영향을 받는 행 0개(3.11초) 

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into CountDistinctDemo(Name) values('Carol');Query OK, 1개의 row가 영향을 받습니다(0.48초)mysql> insert into CountDistinctDemo(Name) values('Bob');Query OK, 1개의 row가 영향을 받습니다( 0.43초)mysql> CountDistinctDemo(Name) values('Carol')에 삽입, 쿼리 확인, 1행 영향(0.26초)mysql> CountDistinctDemo(Name) values('John')에 삽입, 쿼리 확인, 1행 영향( 0.27초)mysql> CountDistinctDemo(Name) values('Bob')에 삽입, 쿼리 확인, 1행 영향(0.35초)mysql> CountDistinctDemo(Name) values('Carol')에 삽입, 쿼리 확인, 1행 영향( 0.98초)mysql> CountDistinctDemo(Name) values('John')에 삽입, 쿼리 확인, 1행 영향(0.26초)mysql> CountDistinctDemo(Name) values('Sam')에 삽입, 쿼리 확인, 영향 1행( 0.14초)mysql> CountDistinctDemo(Name) values('Mike')에 삽입, 쿼리 확인, 1행 영향(0.53초)mysql> CountDistinctDemo(Name) values('Carol')에 삽입, 쿼리 OK, 1행 영향( 0.31초)mysql> CountDistinctDemo(Name) values('David');Query에 삽입 알겠습니다. 1행이 영향을 받았습니다(0.40초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다.

쿼리는 다음과 같습니다.

mysql> CountDistinctDemo에서 *선택;

다음은 출력입니다.

+----+-------+| 아이디 | 이름 |+----+-------+| 1 | 캐롤 || 2 | 밥 || 3 | 캐롤 || 4 | 존 || 5 | 밥 || 6 | 캐롤 || 7 | 존 || 8 | 샘 || 9 | 마이크 || 10 | 캐롤 || 11 | David |+----+-------+11행 세트(0.07초)

DISTINCT를 사용하지 않으면 COUNT() 함수는 모든 행의 개수를 제공합니다.

쿼리는 다음과 같습니다 -

mysql> CountDistinctDemo에서 TotalName으로 count(Name) 선택;

다음은 출력입니다 -

+-----------+| 총명 |+-----------+| 11 |+-------------+1 행 세트(0.04초)

다음은 COUNT()와 DISTINCT를 함께 사용하는 쿼리입니다 -

mysql> SELECT COUNT(DISTINCT 이름)를 UniqueName FROM CountDistinctDemo;

다음은 출력입니다.

+------------+| 고유 이름 |+------------+| 6 |+------------+1 행 세트(0.00초)