빅데이터과정/SQL
#7_140623_CORRELATED SUBQUERY
하히후후후
2014. 7. 14. 10:19
728x90
# CORRELATED SUBQUERY
문제312. 이름, 월급을 출력하는데 자기의 월급이 자기가 속한 부서번호의 평균월급보다 더 큰 사원들만 출력하시오
SELECT ename, sal
FROM EMP m
WHERE sal>(SELECT AVG(sal) FROM EMP s WHERE s.deptno=m.deptno);
l main query의 컬럼이 subquery로 들어가게 되면 main query 부터 작동이 된다.
l correlated subquery
문제313. 이름, 직업을 출력하는데 자기가 속한 직업의 인원수가 3명 이상인것만 출력하시오
SELECT ename, job
FROM EMP m
WHERE 3 <= (SELECT COUNT(*) FROM EMP s WHERE s.job=m.job);
문제314. 사원테이블에 loc(부서위치) 컬럼을 추가하시오
ALTER TABLE EMP
ADD loc VARCHAR2(10);
문제315. 위에서 추가한 사원 테이블의 loc 컬럼을 갱신하는데 자기가 속한 부서위치로 값을 갱신하시오
UPDATE EMP e
SET loc=(SELECT loc FROM DEPT d WHERE d.deptno=e.deptno);
l 튜닝 후 : merge 문
문제316. 데이터를 삭제하는데 자기 직업의 인원수가 3명보다 작은 사원들을 삭제하시오
DELETE EMP m
WHERE 3 > (SELECT COUNT(*) FROM EMP s WHERE s.job=m.job);