본문 바로가기

빅데이터과정/SQL

#7_140623_CORRELATED SUBQUERY

728x90

# CORRELATED SUBQUERY


문제312. 이름월급을 출력하는데 자기의 월급이 자기가 속한 부서번호의 평균월급보다 더 큰 사원들만 출력하시오

SELECT ename, sal
FROM EMP m
WHERE sal>(SELECT AVG(sal) FROM EMP s WHERE s.deptno=m.deptno);

main query의 컬럼이 subquery로 들어가게 되면 main query 부터 작동이 된다.
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);
튜닝 후 : 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