-
해커랭크 Symmetric Pairs (셀프 JOIN, 조건)Programing Language/SQL 2025. 6. 16. 15:32반응형
https://www.hackerrank.com/challenges/symmetric-pairs/problem
Symmetric Pairs | HackerRank
Write a query to output all symmetric pairs in ascending order by the value of X.
www.hackerrank.com
문제 정의 (영어 -> 한국어 번역 후 문제 파악하기)
X 와 Y라는 두 개의 열이 포함된 함수 테이블이 주어졌습니다 .
두 쌍 (X 1 , Y 1 ) 과 (X 2 , Y 2 ) 는 X 1 = Y 2 이고 X 2 = Y 1 일 때 대칭 쌍 이라고 합니다 .
X 값을 기준으로 모든 대칭 쌍을 오름차순으로 출력하는 쿼리를 작성하세요 . X 1 ≤ Y 1 이 되는 행을 나열하세요 .
문제 접근
- X 값을 기준으로 모든 대칭 쌍을 오름차순으로 출력하는 쿼리
- 조건
- X 1 = Y 2 이고 X 2 = Y 1
- X 1 ≤ Y 1 이 되는 행
- X1기준 내림차순
- 접근
- x=y : 동일한 쌍 2개 이상
- x<> y : 로직에 충실하되, 중복 제거
- X 1 = Y 2 이고 X 2 = Y 1
- X 1 ≤ Y 1 이 되는 행
/* -- X 값을 기준으로 모든 대칭 쌍을 오름차순으로 출력하는 쿼리 -- 조건 -- X 1 = Y 2 이고 X 2 = Y 1 -- X 1 ≤ Y 1 이 되는 행 -- X1기준 내림차순 ex) x,y 20,20 20,20 20,21 23,22 22,23 21,20 symetric 20,20 20,20 23,22 22,23 20,21 21,20 */ sql-- 수정된 코드 select distinct a.x, a.y from ( -- x <> y (서로 다른 대칭 쌍) select a.x, a.y from Functions a inner join Functions b -- innner → inner on a.x = b.y and a.y = b.x and a.x < a.y -- b.y → a.y union all -- x = y (같은 값이 2개 이상 있는 경우) select x, y from Functions where x = y group by x, y having count(*) >= 2 ) a order by a.x -- x → a.x
반응형'Programing Language > SQL' 카테고리의 다른 글
mysql 실무 적용 코딩 (고객별 매출 요약) (0) 2025.06.17 해커랭크 SQL Project Planning (연속 날짜, GAP 분석) (0) 2025.06.16 해커랭크 Ollivander's Inventory (복합 조건 JOIN) (0) 2025.06.16 해커랭크 Binary Tree Nodes (CASE, 서브쿼리) (0) 2025.06.16 해커랭크 Weather Observation Station 20 (중앙값, 윈도우 함수) (0) 2025.06.16