[SQL] 서브쿼리를 사용한 합치기

·2025년 7월 10일

SQL

목록 보기
103/126

문제1. dept 테이블에 sumsal 컬럼을 추가하시오

alter  table  dept
 add  sumsal  number(10);

문제2. 부서번호, 부서번호별 토탈월급을 출력하시오

select deptno,  sum(sal)
 from emp
 group by deptno;

문제3. dept 테이블의 sumsal 컬럼의 데이터를 부서번호별 토탈월급으로 값을 갱신하시오

merge into dept d
using ( select  deptno, sum(sal) as sumsal
           from emp
           group by deptno )  v
on (d.deptno = v.deptno)
when matched then 
update set d.sumsal = v.sumsal;

오늘의 마지막 문제. dept 테이블에 sumsal 뿐만 아니라 maxsal, minsal, cnt 컬럼을 추가하고 해당 부서번호의 최대월급과 최소웝급과 인원수로 값을 갱신하시오

alter  table  dept
 add  maxsal  number(10)
 add  minsal  number(10)
 add  cnt  number(10);
 
merge into dept d
using ( select deptno, max(sal) as maxsal,
                       min(sal) as minsal,
                       count(*) as cnt
          from emp
          group by deptno ) v
on (d.deptno = v.deptno)
when matched then
update set d.maxsal = v.maxsal,
           d.minsal = v.minsal,
           d.cnt = v.cnt;


select * from dept;

0개의 댓글