2011-02-03 3 views
3

MySQL에서 고유 카운트 (*)를 얻는 방법.distinct count (*)

예를 들어, 내가 table1 1 천만 개의 레코드를 가지고 거기에 중복 레코드가 있습니다.

테이블에서 고유 카운트 (*)를 찾고 싶습니다.

나는 내가 1000 만 개 기록되지도 테이블을 만들고, 같은 다른 테이블에 서로 다른 레코드를 삽입 할 를 가져올 싶지 않아, 내가

이 표 에서 별개의 *를 선택 할 수있는, 알고 있지만 table2 select distinct * from table1

그래서 다른 옵션으로 도와주세요. 환영 사람에서

도움말

답변

4

하위 쿼리 사용해보십시오 :

SELECT COUNT(*) FROM (SELECT DISTINCT * FROM table1) T1 
+0

내가 그렇게 하위 쿼리의 뜻 둔화 @Krunal 결과 – Krunal

+0

을 사용하여 테이블에 1000 만 개 기록을 가지고 : 당신이 확실 *이 느리다 * 있습니까?! 그 증거는 무엇입니까? 그걸 시도해 봤어? –

+0

나는 시도했다. 11256 행에서 별개의 레코드를 얻는 데 1.30 분이 걸렸습니다. 그리고 테이블에 천만 개의 레코드가 있습니다. – Krunal

11
SELECT COUNT(DISTINCT field) FROM table 

또는

SELECT COUNT(*) FROM table GROUP BY field; 

(BTW -이 사이트에 다른 곳이 대답했습니다 꽤 몇 번)

0

아마 같은 :

SELECT SUM(cnt) FROM (SELECT COUNT(*) as cnt FROM tab GROUP BY some_value)