제가 저번주까지인가 밑에와 같은 강의를 들었답니다.
Insert into employee
values( 'James', 'E', 'Borg', '888665555',
to_date('1937-11-10','yyyy-mm-dd'),
'450, Stone, Houston, TX', 'M', 55000,
NULL, 1)
UPDATE EMPLOYEE
SET ADDRESS = '450 Stone, Houston, TX'
WHERE DNO = 1;
UPDATE EMPLOYEE
SET DNO=4
WHERE FNAME='Ahmad';
부서별 평균 급여를 검색 하시오
select dname, avg(salary) from employee, department
where dno = dnumber;
group by dname
FNAME LNAME SALARY DNO DNAME
DNUMBER
---------- ---------- ---------- ---------- ---------------
----------
John Smith 30000 5 Research
5
Franklin Worng 40000 5 Research
5
Ramesh Narayan 38000 5 Research
5
Joyce English 25000 5 Research
5
FNAME LNAME SALARY DNO DNAME
DNUMBER
---------- ---------- ---------- ---------- ---------------
----------
Alicia Zelaya 25000 4
Administration 4
Jenifer Wallece 43000 4
Administration 4
Ahmad Jabbar 25000 4
Administration 4
FNAME LNAME SALARY DNO DNAME
DNUMBER
---------- ---------- ---------- ---------- ---------------
----------
James Borg 55000 1
Headwuaters 1
문제 : 직원이 두명 이상인 부서의 직원 수와 평균 급여를 검색
하시오.
/* 테이블 이름 별명 붙이는 예제
Ahmad의 직속상사의 이름은 무엇인가?
select e_mgr.fname, e_mgr.lname
from employee e, employee e_mgr
where e_mgr.ssn = e.superssn; */
문제 : 직원이 두명 이상인 부서의 직원 수와 평균 급여를 검색
하시오.
(인라인 뷰와 테이블 이름 별명 붙이기 기법을 이용한 문제 해결
방법)
select dname, dnumber, e_count, avg(salary)
from (select dname, dnumber, count(ssn) as e_count
from department, employee
where dno = dnumber
group by dname, dnumber) e_dmp, employee
where dno = dnumber and e_count >= 2
group by dname, dnumber, e_count;
(having 절을 이용한 해결 방법)
select dname, count(*), avg(salary)
from department, employee
where dno = dnumber
group by dname
having count(*) >= 2;
그래서 다음엔 이런문제가 주어지더군요.
두명 이상이 참여하는 프로젝트의 이름과,
그 프로젝트를 관리하는 부서의 이름
해당 프로젝트의 평균 급여 및
부서 관리자 이름을 검색 하시오.
두명이 상이 참여하는 프로젝트야 좀 하면 나오던데요... 그
프로젝트를 관리하는 부서? 해당프로젝트 평균 급여에다가
부서관리자라니...;; 역시 복학후라 그런지 머리가 안돌아가네요;; ㅎㅎ
이럴땐 어떻게 해야하는지 노하우좀 가르쳐주세요 TT
|