인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

[SQL 실전반 4기] 코차님의 프로필 이미지
[SQL 실전반 4기] 코차

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

UNION 해커랭크 문제풀이(난이도 상)

SELF JOIN과 HAVING 갯수

작성

·

301

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
SELECT a.x, a.y FROM functions AS a INNER JOIN functions AS b ON a.x = b.y AND a.y = b.x WHERE a.x = b.x GROUP BY a.x, a.y HAVING COUNT(*) = 2
 
X = Y 일때 대칭인 경우만 추출한다고 할때
위와 같이 self join으로 풀면 왜 no response로 뜨고
HAVING COUNT(*) = 4 일때 정상적으로 답이 나오는데
왜 4개로 뜰까요?ㅠㅠ

답변 1

0

데이터리안님의 프로필 이미지
데이터리안
지식공유자

안녕하세요 gmlwls627님

COUNT(*) 값이 2인 데이터가 없기 때문에 결과를 보여주지 않는 것으로 확인됩니다.

x값과 y값이 같은 경우가 테이블 내에 한개만 있는 경우에는 JOIN하여 COUNT한 결과가 하나씩만 나오게 되며, 아래와 같이 테이블 내에 똑같은 값이 2번 반복되는 경우에는 JOIN 했을 때 총 4개의 조인 결과를 반환하게 됩니다.

궁금증이 해결 되셨길 바랍니다.

[SQL 실전반 4기] 코차님의 프로필 이미지
[SQL 실전반 4기] 코차

작성한 질문수

질문하기