DATA ANALYSIS/SQL
[SQL : HackerRank] UNION
Rmsid01
2021. 2. 14. 10:25
1. Symmetric Pairs
>> 문제
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.
Sample Input
Sample Output
20 20
20 21
22 23
>> 문제 풀이
SELECT X , Y
FROM Functions
WHERE X = Y
GROUP BY X, Y
HAVING COUNT(*) = 2 -- 13 13 2 : 2번 출현한 같은 문장
UNION
SELECT F1.X , F1.Y
FROM Functions AS F1
INNER JOIN FUNCTIONS AS F2 ON F1.X = F2.Y AND F1.Y = F2.X -- AND 사용 가능
WHERE F1.X < F1.Y -- 출력은 X 가 Y 보다 작은 경우를 출력
ORDER BY X -- UNION 할때는 맨 마지막에 ORDER BY 해줘야함 ( 그럼 전체가 정렬됨 )