단일 쿼리에서 모든 열의 고유 개수를 가져 오려고합니다. 아래 표를 고려하십시오.
COL1 | COL2 | COL3
A | 5 | C
B | 5 | C
C | 5 | C
C | 5 | C
D | 7 | C
예상 결과
DC_COL1 | DC_COL2 | DC_COL3 #DC - Distinct count
4 | 2 | 1
함수 별 유효한 그룹을 사용하여 단일 쿼리 (단일 전체 테이블 스캔)에서 위의 결과를 얻을 수 없지만 (AFAIK) 여기서 수행 할 수있는 최적화는 무엇입니까?
각 열에 대해 개별 쿼리를 실행하면 각 열에 대한 전체 테이블 스캔이 발생할 수 있습니다. 전체 테이블이 첫 번째 열에 대한 고유 카운트 쿼리 중에 버퍼 풀에 올 수 있지만 큰 테이블에서는 여전히 성능 문제가됩니다.
단일 테이블 스캔으로 수행 할 수 있습니다.
SELECT
COUNT(DISTINCT COL1) DC_COL1,
COUNT(DISTINCT COL2) DC_COL2,
COUNT(DISTINCT COL3) DC_COL3
FROM tablename
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다