-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
count(*) >1의 의미
22.12.28 22:14 작성 조회수 463
0
count(*)의 의미는 아는데 >1을 하는게 어떻게 유니크한 값을 볼 수 있는건지 이해가 안됩니다
답변을 작성해보세요.
0
beassles7
질문자2022.12.31
select distinct(col_a)
이런식으로 많이 썼엇는데 group by로 유니크한 값을 조회하는 거랑은 차이가 있는지 궁금합니다
권 철민
지식공유자2022.12.31
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
권 철민
지식공유자2022.12.29
안녕하십니까,
특정 컬럼값으로 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
감사합니다.
답변 2