공부/데이터베이스

교집합, 합집합, 차집합

원클릭쓰리버그 2022. 2. 9. 20:16
728x90
use BaseballData;

--RDBMS(Realtional 관계형)
--데이터를 집합으로 간주한다.

--복수의 테이블을 다루는 방법

--커리어 평균 연봉이 3백만 이상인 선수들의 playerID

SELECT playerID, AVG(salary)
FROM salaries
GROUP BY playerID
HAVING AVG(salary) >= 3000000

-- 12월에 태어난 선수들의 playerID
SELECT playerID, birthMonth
FROM players
WHERE birthMonth = 12

-- [커리어 평균 연봉이 300000이상] 이거나 [12월에 태어난] 선수
--UNION (중복 제거) UNION ALL(중복 허용)

SELECT playerID
FROM salaries
GROUP BY playerID
HAVING AVG(salary) >= 3000000

UNION ALL

SELECT playerID
FROM players
WHERE birthMonth = 12
ORDER BY playerID


-- [커리어 평균 연봉이 300000이상] 이고 [12월에 태어난] 선수
-- INTERSECT

SELECT playerID
FROM salaries
GROUP BY playerID
HAVING AVG(salary) >= 3000000

INTERSECT

SELECT playerID
FROM players
WHERE birthMonth = 12
ORDER BY playerID


--[커리어 평균 연봉이 300000이상] 이지만 [12월에 태어난] 선수를 제외한다.
--EXCEPT

'공부 > 데이터베이스' 카테고리의 다른 글

TRANSACTION  (0) 2022.02.16
JOIN (교차 결합)  (0) 2022.02.09
정규화 / INDEX  (0) 2022.02.07
데이터베이스 작성  (0) 2022.01.27
서브 쿼리( SUBQUERY)  (0) 2022.01.26