• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

Symmetric Pairs 문제 질문드립니다!

20.08.07 00:27 작성 조회수 163

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

듀랑이님의 프로필

듀랑이

질문자

2020.08.07

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

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 을 사용하시면 됩니다 :)