보통 데이터 중복체크는 어떻게 이루어지나요? 1

by 초보 [SQL Query] [2023.08.04 16:19:28]


상품구매 테이블 스키마는 아래와 같고,

---------------------------

pk  구매자번호

pk  상품번호

pk  상품대분류

pk  상품중분류

pk  상품소분류

     구매갯수 

---------------------------

상품구매 테이블 데이터는 아래와 같은데요

구매자번호 상품번호 상품대분류 상품중분류 상품소분류 구매갯수
1 3 A a 0 1
1 10 A a 0 3
1 2 A a 0 1
1 2 A a 0 2
2 3 A a 0 2
2 10 A a 0 4
2 2 A a 0 3
2 3 A a 0 2
3 10 A a 0 1

보통 데이터 중복체크는 group by 를 pk로 묶어서 중복된게 없는지 확인하나요?

위처럼 구매자번호/상품번호/상품대분류/상품중분류/상품소분류가 pk가 된다면 같은 구매자가 같은 상품을 구매하면 당연히 pk가 겹칠수밖에 없다는 생각이 들었는데요. 

혹시나 상품번호가 상품시리얼번호면 pk로 잡는게 말이 된다는 생각에..

select  구매자번호, 상품번호, 상품대분류, 상품중분류, 상품소분류, count(*)

 from 상품구매테이블

group by 구매자번호, 상품번호, 상품대분류, 상품중분류, 상품소분류

 having count(*) > 1

해도 갯수가 1초과로 잡히더라구요.. 

그런데 이 방식으로 중복체크하는게 맞을까요? (저는 https://learnsql.com/blog/how-to-find-duplicate-values-in-sql/ 참조하였습니다)

혹시 일반적으로 데이터 중복체크는 어떻게 하시나요?

 

by pajama [2023.08.04 16:28:11]

pk가 중복이라면 pk가 disabled 상태인건 아닐까요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입