강의

멘토링

커뮤니티

Inflearn Community Q&A

thkim95550975's profile image
thkim95550975

asked

SQL data analysis learned through various cases

Introducing the North Wind Commerce Dataset for Sales Analysis - 02

count(*) >1의 의미

Written on

·

921

0

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

postgresqlsqlDBMS/RDBMS퍼포먼스 마케팅데이터 엔지니어링

Answer 2

0

beassles7님의 프로필 이미지
beassles7
Questioner

select distinct(col_a)

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

dooleyz3525님의 프로필 이미지
dooleyz3525
Instructor

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

dooleyz3525님의 프로필 이미지
dooleyz3525
Instructor

안녕하십니까,

특정 컬럼값으로 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

 

감사합니다.

 

 

thkim95550975's profile image
thkim95550975

asked

Ask a question