아래 예제 장난감을 사용하여 DISTINCT가 작동하는 방식을 명확히하고 싶었습니다. 가정 당신은 2 열 및 데이터의 2 행과,과 같이 테이블을했다 :모든 열에 하이브 DISTINCT()?
SELECT DISTINCT colA, colB
FROM table1;
에 대해 반환되는 다음과 같은 결과 : 나는 SELECT DISTINCT 쿼리를 실행
SELECT *
FROM table1;
colA colB
A B
A C
가정하자 위의 쿼리?
결과 가능성 1 :
A B
A C
이 가능성에 대한 생각은 값이 colA
에 구별없는 동안 두 열을 고려할 때, 전체 반환 행, 독특한, 또는 별개의 것입니다. 나는 colA
과 colB
사이의 쉼표의 영향으로 인해 SELECT DISTINCT colA, colB
에 있으며, DISTINCT
을 colA
으로 제한하는지 여부로 인해 불확실합니다.
결과 가능성 2 :
A B
결과 가능성 3 :
A C
감사합니다.
가능성 *** *** 별개의 모든 열에 적용됨 *** colA를 선택한 경우 1 개의 레코드 결과가 나옵니다. A : 방금 distict 열 B를 선택한 경우 B와 C를 얻습니다. 3 번째 레코드 A, B가 있다면 3 번째 레코드가 첫 번째 레코드와 중복되므로 별개의 colb을 선택할 때 여전히 2 개의 레코드 만 얻을 수 있습니다. ColA를 사용하면 두 번째 레코드 만 얻습니다. ColB는 세 번째 레코드가 다시 레코드 1의 정확한 복사본입니다. – xQbert