database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 1166 게시물 읽기
No. 1166
요즘 데이터베이스강의를 듣는 복학생입니다^^
작성자
김건형(신이치)
작성일
2005-10-20 10:57
조회수
11,002

제가 저번주까지인가 밑에와 같은 강의를 들었답니다.

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

 

이 글에 대한 댓글이 총 2건 있습니다.

두명이 상이 참여하는 프로젝트야 좀 하면 나오던데요... 그 프로젝트를 관리하는 부서? 해당프로젝트 평균 급여에다가 부서관리자라니

 

프로젝트가 나오면 프로젝트로 관리부서는 조인할 수 있지 않나요?

평균급여는 group by 해서 avg 하면 되고..  

관리부서가 나오면 부서관리자도 조인으로 나올테고...

 

조인이야말로 관계형 데이타베이스의 꽃입니다...  ㅎㅎ

이경환(babocom)님이 2005-10-20 11:17에 작성한 댓글입니다.
이 댓글은 2005-10-20 15:36에 마지막으로 수정되었습니다.

select 프로젝트명, 관리부서, 평균급여,부서관리자명

from ( --2명이상 참여하는 프로젝트 명가져오기 inline-view

             select 프로젝트명, 관리부서코드, 참여인원count

             from 프로젝트 테이블

             group by 프로젝트명, 관리부서코드

             having 참여인원count >= 2

        ) a,

        ( --부서정보 가져오기 inline-view

             select 부서코드, 부서명, 부서관리자명, 평균급여avg

             from  부서테이블 a, 사원테이블 b

             where a.부서코드 = b.부서코드

             group by 부서코드, 부서명, 부서관리자명

        ) b

where a.부서코드 = b.부서코드

 

박정수(apadanji)님이 2005-11-07 15:27에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1173정규화/비정규화 - 컬럼의 추가인가 테이블 분리인가 [6]
지우개
2005-11-07
11688
1171질문이요 [1]
배용준
2005-11-04
9723
1170join vs subquery [1]
초보
2005-10-31
9756
1166요즘 데이터베이스강의를 듣는 복학생입니다^^ [2]
김건형
2005-10-20
11002
1163쓰지 않는 table 명이 쿼리문에 있으면 성능이 떨어질까요??? [5]
초보
2005-10-13
9529
1162sub query 를 지원하는 DB ??? [2]
초보
2005-10-13
9558
1161DB용어 질문인데요... [2]
김정식
2005-10-04
11285
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다