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.
두 개의 열이 포함된 함수라는 표가 주어집니다: X와 Y.
X1 = Y2이고 X2 = Y1인 경우 두 쌍(X1, Y1)과 (X2, Y2)은 대칭 쌍이라고 합니다.
쿼리를 작성하여 모든 대칭 쌍을 X 값만큼 오름차순으로 출력합니다. X1 ≤ Y1이 되도록 행을 나열합니다.
SELECT
BASE.X,
BASE.Y
FROM (
# 1. X가 Y 보다 작거나 같은 조건이 TRUE이면 X, FALSE이면 Y로 (X, Y)의 쌍 생성
SELECT
IF(X <= Y, X, Y) AS X,
IF(X <= Y, Y, X) AS Y
FROM FUNCTIONS
) AS BASE
# 2. GROUP BY로 X와 Y 쌍 별로 그룹화
GROUP BY
BASE.X,
BASE.Y
# 3. HAVING 조건으로 같은 쌍이 두개 이상인 경우만 추출
HAVING
COUNT(*) >= 2
ORDER BY
X ASC
'[SQL]' 카테고리의 다른 글
HackerRank 코딩 테스트 - SQL Project Planning(LV.Medium) (0) | 2024.10.19 |
---|---|
HackerRank 코딩 테스트 - Placements(LV.Medium) (0) | 2024.10.19 |
HackerRank 코딩 테스트 - Print Prime Numbers(LV.Medium) (0) | 2024.10.19 |
프로그래머스 코딩 테스트 - 멸종위기의 대장균 찾기(LV.5) (0) | 2024.10.19 |
프로그래머스 코딩 테스트 - 상품을 구매한 회원 비율 구하기(LV.5) (0) | 2024.10.18 |