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);
'빅데이터과정 > SQL ' 카테고리의 다른 글
#8_140624_with (0) | 2014.07.14 |
---|---|
#7_140623_DCL(Data Control Language) (0) | 2014.07.14 |
#7_140623_마지막 문제 (0) | 2014.07.14 |
#7_140623_EXISTS (0) | 2014.07.14 |
#7_140623_PAIRWISE (0) | 2014.07.14 |