카테고리 없음
[Oracle] HackerRank 문제 정리 - 4
반월하
2022. 8. 3. 13:17
728x90
테이블:
Functions
Sample Input
Sample Output:
20 20
20 21
22 23
조건:
X 1 = Y 2 및 X 2 = Y 1 인 경우 두 쌍 (X 1 , Y 1 ) 및 (X 2 , Y 2 ) 을 대칭 쌍 이라고 합니다 .
모든 대칭 쌍 을 X 값만큼 오름차순으로 출력하는 쿼리를 작성하십시오 . X 1 ≤ Y 1 이 되도록 행을 나열하십시오 .
select distinct s1.X, s1.Y
from
(select X,Y,row_number() over(order by X, Y) as r_n from functions) s1,
(select X,Y,row_number() over(order by X, Y) as r_n from functions) s2
where s1.X = s2.Y and s1.Y = s2.X and s1.r_n <> s2.r_n and s1.X <= s1.Y
order by s1.X;
쿼리 해석
서브쿼리를 2개를 만듭니다. X열, Y열, 각 열의 번호를 표시한 열로 동일한 쿼리를 다른 테이블로 2개를 만들어 불러와서
S1의 X와 S2의 Y가 같은 것, S1의 Y와 S2의 X가 같은 것을 가져옵니다 대신 같은 열번호를 제외하고 S1의 X가 더 작게 해서 S1.X의 오름차순으로 출력해줍니다.
728x90