티스토리 뷰
728x90
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.
Sample Input
Sample Output
20 20
20 21
22 23
SELECT F1.X, F1.Y
FROM Functions F1
JOIN Functions F2
ON (F1.X = F2.Y AND F1.Y = F2.X)
GROUP BY F1.X, F1.Y
HAVING COUNT(F1.X) > 1
OR F1.X < F1.Y
ORDER BY F1.X;
또 문제 이해를 못했나보다....; 그런데 아무리 봐도 잘 모르겠다...;;
나는 아래처럼 WHERE 구문에서 F1.X <= F1.Y 로 했더니 샘플 결과와 동일하게 나왔다. 그런데 오답이었다..
다른 블로그를 좀 찾아보니 X=Y인 경우에는 같은 데이터가 하나씩 더 있어야 한다고 한다.
즉, 샘플에서 (20,20) row가 2개 있는데 만약 1개 였다면 데이터가 나오지 않아야 한다고 한다. 왜?
구문이 어려운게 아니고 정말 문제 이해를 못하겠다....ㅠ
TRUNCATE TABLE #Functions
CREATE TABLE #Functions (
X INT,
Y INT
)
INSERT INTO #Functions
VALUES (20,20)
-- , (20,20)
, (20,21)
, (23,22)
, (22,23)
, (21,20)
X1 = Y2 및 X2 = Y1인 경우 두 쌍(X1, Y1)과 (X2, Y2)를 대칭 쌍이라고 합니다.
모든 대칭 쌍을 X 값만큼 오름차순으로 출력하는 쿼리를 작성하십시오. X1 ≤ Y1이 되도록 행을 나열하십시오.
SELECT F1.X, F1.Y
FROM #Functions F1
JOIN #Functions F2
ON (F1.X = F2.Y AND F1.Y = F2.X)
WHERE F1.X <= F1.Y
GROUP BY F1.X, F1.Y
ORDER BY F1.X
/*
X Y
20 20
20 21
22 23
*/
SELECT F1.X, F1.Y
FROM #Functions F1
JOIN #Functions F2
ON (F1.X = F2.Y AND F1.Y = F2.X)
GROUP BY F1.X, F1.Y
HAVING COUNT(F1.X) > 1
OR F1.X < F1.Y
ORDER BY F1.X
/*
X Y
20 21
22 23
*/
728x90
LIST
'Programming > MySQL' 카테고리의 다른 글
[MySQL/Hackerrank] Draw The Triangle 1 (0) | 2021.11.07 |
---|---|
[MySQL/Hackerrank] Interviews (0) | 2021.11.07 |
[MySQL/Hackerrank] Placements (0) | 2021.11.06 |
[MySQL/Hackerrank] SQL Project Planning (0) | 2021.11.06 |
[MySQL/Hackerrank] Contest Leaderboard (0) | 2021.11.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- string
- 해커랭크
- python3
- python
- DATABASE
- Weather Observation Station
- 동국알앤에스
- Tableau
- list
- MS SQL Server
- TSQL
- mysql
- HK이노엔
- 미중무역전쟁
- MSSQL
- 리비안
- 코로나19
- 매매일지
- 몰누피라비르
- 테슬라
- 넥스트BT
- 분석탭
- insert
- tensorflow
- 넷플릭스
- hackerrank
- SQL Server
- 경구치료제
- 에코캡
- 대원화성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함