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

듀랑이님의 프로필 이미지
듀랑이

작성한 질문수

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

Symmetric Pairs 문제 질문드립니다!

작성

·

272

1

안녕하세요, 좋은 강의 정말 감사드립니다!

중급 강의 마지막 문제인 symmetirc pairs와 관련해 궁금한점이 있어 질문드립니다.

해당 문제에서 Functions 테이블을 셀프조인하는 것은 이해했는데, UNION을 쓰지 않고 셀프조인하여 새롭게 만들어진 테이블에서 한꺼번에 x=y 가 같은 페어와 x<>y인 페어를 찾는 방법은 없는 것인지 궁금합니다.

================================

SELECT f1.x, f1.y

FROM functions AS f1

    INNER JOIN functions AS f2 ON f1.x=f2.y AND f1.y=f2.x

WHERE count(*)>=2 or f1.x < f1.y

================================

이렇게 쿼리를 짜보았는데,  아래와 같이 에러 코드로 뜹니다.

WHERE 절에서는 count함수를 쓸 수 없는 것인가요?

답변 2

1

듀랑이님의 프로필 이미지
듀랑이
질문자

정말 감사합니다!!!! 답변 참고해서 아래처럼하니까 되네요!!!

SELECT f1.x, f1.y

FROM functions AS f1 INNER JOIN functions AS f2 ON f1.x=f2.y AND f1.y=f2.x

GROUP BY f1.x, f1.y

HAVING count(*)>=2 or f1.x < f1.y

ORDER BY f1.x

1

윤선미님의 프로필 이미지
윤선미
지식공유자

WHERE 절에서는 Aggregation Function (COUNT(), MAX(), MIN() 등)을 사용하실 수 없습니다.

Aggregation 결과물을 기준으로 필터링을 하고 싶을 때에는 HAVING 을 사용하시면 됩니다 :)

듀랑이님의 프로필 이미지
듀랑이

작성한 질문수

질문하기