HAZEL

[SQL : HackerRank] UNION 본문

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 해줘야함 ( 그럼 전체가 정렬됨 )