[HackerRank] Symmetric Pairs

당당·2023년 7월 22일
0

HackerRank

목록 보기
21/27

https://www.hackerrank.com/challenges/symmetric-pairs/problem

📔문제

You are given a table, Functions, containing two columns: X and Y.

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.


📝예시

20 20
20 21
22 23

🧮분야

  • JOIN

📃SQL 코드

select distinct a.x, a.y
from functions a, functions b
where a.x=b.y
and a.y=b.x
and a.x<=a.y
and a.rowid!=b.rowid
order by a.x;

📰출력 결과


📂고찰

where a.x=b.y
and a.y=b.x
and a.x<=a.y
order by a.x;

처음에는 이렇게만 쿼리를 작성했었는데, 이렇게 되면

2 24 24 2
24 2 2 24

위의 테스트케이스가 다른 경우로 쳐진다.

그러므로, a.rowid!=b.rowid 즉, 같은 행이 아닌 것으로 해야 한다.
그러면 2 24랑 밑의 2 24는 같은 행이므로 조인이 되지 않고
13 13 13 13 또한 다른 행으로 두개 있으니 조인이 된다.

profile
MySQL DBA 신입

0개의 댓글