-
UNION, INTERSECT, EXCEPT데이터베이스 with MSSQL/SQL 입문 2022. 4. 8. 12:51
1. 필요성
-- 12월에 태어난 선수들의 playerID SELECT playerID, birthMonth FROM players WHERE birthMonth = 12
-- 커리어 평균 연봉이 3백만 이상인 선수들의 playerID SELECT playerID, AVG(salary) FROM salaries GROUP BY playerID HAVING AVG(salary) >= 3000000
두 개의 SELECT문을 활용하여 합집합, 교집합, 차집합을 구하고 싶을 때는 각각 UNION, INTERSECT, EXCEPT를 활용할 수 있다.
2. UNION, UNION ALL
-- [커리어 평균 연봉이 3백만 이상인 선수] || [12월에 태어난 선수]들의 playerID (합집합) -- UNION (중복 제거), UNION ALL(중복 허용) SELECT playerID FROM salaries GROUP BY playerID HAVING AVG(salary) >= 3000000 UNION SELECT playerID FROM players WHERE birthMonth = 12
3. INTERSECT
-- [커리어 평균 연봉이 3백만 이상인 선수] && [12월에 태어난 선수]들의 playerID (교집합) -- INTERSECT SELECT playerID FROM salaries GROUP BY playerID HAVING AVG(salary) >= 3000000 INTERSECT SELECT playerID FROM players WHERE birthMonth = 12
4. EXCEPT
-- [커리어 평균 연봉이 3백만 이상인 선수] - [12월에 태어난 선수]들의 playerID (차집합) -- EXCEPT SELECT playerID FROM salaries GROUP BY playerID HAVING AVG(salary) >= 3000000 EXCEPT SELECT playerID FROM players WHERE birthMonth = 12
'데이터베이스 with MSSQL > SQL 입문' 카테고리의 다른 글
TRANSACTION (0) 2022.04.11 JOIN (0) 2022.04.08 인덱스(INDEX) (0) 2022.04.08 데이터베이스 작성(CREATE, ALTER, DROP) (0) 2022.04.08 SUBQUERY, IN, EXISTS (0) 2022.04.06