SQL 코드카타_Symmetric Pairs
# 목적, 목표 : 모든 대칭 쌍을 오름차순으로 출력
# 필요한 컬럼 : X , Y
# 컬럼 조건 : 없음
# 사용할 테이블 : Functions
# join key : 없음
# 테이블 조건 : 두 쌍 (X1 , Y1 )과 (X2 , Y2 )는 X1 = Y2 이고 X2 = Y1 일 때 대칭 쌍, X1 ≤ Y1
# 필요한 그룹 : 없음
# 필요한 그룹 조건 : 없음
# 정렬 기준 : X 기준 오름차순
# 주의사항 : 결과 값은 중복 제거
WITH A AS (
SELECT X, Y
FROM Functions
WHERE (X, Y) in (SELECT Y, X FROM Functions) and X != Y and X <= Y),
B AS (
SELECT X, Y
FROM Functions
WHERE X = Y
GROUP BY X
HAVING count(X) > 1)
SELECT X, Y
FROM A
UNION
SELECT X, Y
FROM B
ORDER BY X
# A 테이블 : X = Y 제외한 대칭 쌍 추출
WITH A AS (
SELECT X, Y
FROM Functions
WHERE (X, Y) in (SELECT Y, X FROM Functions) and X != Y and X <= Y),
# B 테이블 : X = Y인 대칭 쌍 추출
B AS (
SELECT X, Y
FROM Functions
WHERE X = Y
GROUP BY X
HAVING count(X) > 1)
# A와 B 결합 및 X 기준 오름차순 정렬
SELECT X, Y
FROM A
UNION
SELECT X, Y
FROM B
ORDER BY X
고생했시유 수수수퍼노인 🙂↕️