https://www.hackerrank.com/challenges/symmetric-pairs/problem?h_r=internal-search&isFullScreen=true
X1 = Y2 and X2 = Y1 인 경우를 Symmetric Pairs 라고 한다.
조건이 약간 복잡하게 느껴지는 경우 Case를 쪼개보면 좋다.
ex1)20 2020 20
SELECT x, y
FROM functions
WHERE x = y
GROUP BY x, y
HAVING COUNT(*) > 1 -- x = y 인 row가 2개 이상이어야 함
ex2)21 2222 21
SELECT f1.x, f1.y
FROM Functions f1
INNER JOIN Functions f2 ON f1.x = f2.y AND f1.y = f2.x
WHERE f1.x < f1.y -- 문제 조건
ex1과 ex2를 UNION 한 후 정렬하면 원하는 결과를 얻을 수 있다.
(SELECT x, y
FROM functions
WHERE x = y
GROUP BY x, y
HAVING COUNT(*) > 1 -- x = y
UNION
SELECT f1.x, f1.y
FROM Functions f1
INNER JOIN Functions f2 ON f1.x = f2.y AND f1.y = f2.x
WHERE f1.x < f1.y)
ORDER BY x
'SQL > 문제풀이' 카테고리의 다른 글
[HakcerRank] Top Earners (0) | 2024.02.16 |
---|---|
[LeetCode] Swap Salary (0) | 2024.02.15 |
[leetcode] Reformat Department Table 📌 (0) | 2024.02.14 |
[HakcerRank] Type of Triangle (0) | 2024.02.14 |
[프로그래머스] 상품을 구매한 회원 비율 구하기 📌 (0) | 2024.02.13 |