인프런 커뮤니티 질문&답변

beassles7님의 프로필 이미지
beassles7

작성한 질문수

다양한 사례로 익히는 SQL 데이터 분석

매출 분석을 위한 North Wind 상거래 데이터 세트 소개 - 02

count(*) >1의 의미

작성

·

726

0

count(*)의 의미는 아는데 >1을 하는게 어떻게 유니크한 값을 볼 수 있는건지 이해가 안됩니다

답변 2

0

beassles7님의 프로필 이미지
beassles7
질문자

select distinct(col_a)

이런식으로 많이 썼엇는데 group by로 유니크한 값을 조회하는 거랑은 차이가 있는지 궁금합니다

권 철민님의 프로필 이미지
권 철민
지식공유자

select distinct(col_a)와 select col_a, count(*) group by col_a having count(*) > 1 은 목적이 다릅니다.

select distinct(col_a)는 무조건 중복을 제거하여 출력하는 것입니다. 반면에 select col_a, count(*) group by col_a having count(*) > 1 은 중복값이 있는지 여부를 판단해서 중복 값이 있으면 해당 컬럼이 pk가 아니라는 것을 판단하는 것입니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

특정 컬럼값으로 group by count(*)를 했을 때 count가 1보다 크면 유니크 하지 않습니다.

아래와 같이 컬럼 col_a 의 값이 유니크 하다면

col_a

'길동'

'춘향'

'몽룡'

select col_a, count(*) from table group by col_a 를 수행하면

'길동' 1

'춘향' 1

'몽룡' 1

과 같이 개별 값 별로 count 1이 추출됩니다.

하지만

컬럼 col_a 의 값이 아래와 같이 유니크 하지 않다면

col_a

'길동'

'춘향'

'춘향'

결과는 아래와 같이 1보다 큰 값이 count로 추출됩니다.

'길동' 1

'춘향' 2

 

감사합니다.

 

 

beassles7님의 프로필 이미지
beassles7

작성한 질문수

질문하기