[MySQL] count,distinct를 통한 중복제거

Simple·2022년 1월 21일
0

트러블슈팅

목록 보기
3/13

mysql 쿼리를 통해 원하는 결과값을 조회화던 중 특정 컬럼에 중복을 제거하고 싶었다.

보통 GROUP BY, distinct를 이용해 제거하지만 내가 원하는 것은 특정 컬럼은 중복을 허용, 특정 컬럼은 중복을 허용하지않는다. 매우 까다롭다.

count(s.storeIdx) as `저장한 식당` , count(r.reviewIdx) as `작성한 리뷰`

식당 1개당 여러개의 리뷰를 작성할 수 있다.
그래서 식당은 중복을 허용하면안되고, 리뷰는 중복이 허용된다.

위의 사진은 식당과 리뷰가 둘 다 중복이 허용된 상태로 나온 결과값이다.

이럴 경우 어떻게 할까?

count(distinct s.storeIdx) as `저장한 식당` , count(r.reviewIdx) as `작성한 리뷰`

바로, 중복을 허용하지 않는 컬럼에 distinct를 적용시키면 원하는 결과 값을 얻을 수 있다.

profile
몰입하는 개발자

0개의 댓글