hackerrank Symmetric Pairs
1) X = Y
1-1)
SELECT X, Y
FROM Functions
WHERE X = Y
GROUP BY X, Y
1-1) 결과
1-2) COUNT(*)
SELECT X, Y, COUNT(*)
FROM Functions
WHERE X = Y
GROUP BY X, Y
HAVING COUNT(*) = 2
1-2) 결과
2) X1 = Y1 AND X2 = Y2
2-1)
SELECT f1.X, f1.Y
FROM Functions f1, Functions f2
WHERE f1.X = f2.Y AND f2.X = f1.Y
AND f1.X < f1.Y -- f1.X <> f1.Y / 단, 이 경우에는 중첩되므로 f1.X < f1.Y 인 한 가지 경우만 사용
2-1) 결과
3) UNION
3-1)
SELECT X, Y
FROM Functions
WHERE X = Y
GROUP BY X, Y
HAVING COUNT(*) = 2
UNION
SELECT f1.X, f1.Y
FROM Functions f1, Functions f2
WHERE f1.X = f2.Y AND f2.X = f1.Y
AND f1.X < f1.Y
3-1) 결과
4) ORDER BY
4-1)
SELECT X, Y
FROM Functions
WHERE X = Y
GROUP BY X, Y
HAVING COUNT(*) = 2
UNION
SELECT f1.X, f1.Y
FROM Functions f1, Functions f2
WHERE f1.X = f2.Y AND f2.X = f1.Y
AND f1.X < f1.Y
ORDER BY X
SUCCESS!!