[Hacker Rank_MySQL]문제 풀이#Symmetric Pairs 본문

IT/코테문제

[Hacker Rank_MySQL]문제 풀이#Symmetric Pairs

호랑구야 2022. 3. 1. 09:05

SQL > Advanced Join > Symmetric Pairs

 

Symmetric Pairs | HackerRank

Write a query to output all symmetric pairs in ascending order by the value of X.

www.hackerrank.com

 

Two pairs (X1, Y1) and (X2, Y2) are said to be symmetric pairs if X1 = Y2 and X2 = Y1.

Write a query to output all such symmetric pairs in ascending order by the value of X. List the rows such that X1 ≤ Y1.

빨간 글씨는 내가 문제를 풀 때 중요하다고 생각한 부분이다.

처음 쿼리를 구성할 때는, F1.X <= F1.Y 로 HAVING 조건을 만들었다. 이후, 완전히 똑같은 값이려면 두 개씩 존재해야 함을 알았다. 

 

SELECT F1.X, F1.Y
FROM FUNCTIONS F1
JOIN FUNCTIONS F2
ON (F1.X = F2.Y) AND (F2.X = F1.Y)
GROUP BY F1.X, F1.Y
HAVING (F1.X < F1.Y) OR ((F1.X = F1.Y) AND (COUNT(F1.X) > 1))
ORDER BY F1.X ASC
반응형
Comments