수업중 학생들에게 내 준 SQL quiz문제, 도전해보시라.

시험조건 : open book, 30 분

당연히 틀릴 알았던, 5번을 거의 정확하게 푼 학생까지 있었다.

한편 다섯문제 완전히 틀려서 0점 받은 학생도 있었지만.. ^^

다음 릴레이션을 보고 다음 답변을 해주세요
.

STUDENT (SID, SNAME, STARTYEAR, DID)

DEPARTMENT (DID, DNAME)

PROFESSOR(PID, PNAME, DID)

COURSE(CID, CNAME, DID, ROOM, PID)

ENROLL(SID, CID)

1)     개설된 과목 수강인원이 3명 이하인 과목을 찾는 SQL 작성하세요. 과목명이 노출되도록 해주세요. (수강생이 0 인 과목은 없다고 가정합니다)

select   c .cname, count (*) as '수강생수'
from

where

group by

having

2)      동물학과소속의 교수가 개설한 과목을 듣는 학생들을 검색하는 SQL을 작성하세요. 학번과 학생이름이 출력되도록 해주세요.

select   distinct s.sid, s.sname

from

where

3)     각 과목마다, 입학년도 별 수강인원을 알아내는 SQL 을 작성하세요. 과목명이 노출되도록 해주세요.

select   c.cname, s.startyear, count(*) as '학년별수강생수 '

from

where

group by

4)     각 과목마다, 신입생(=2008년 입학생) 재학생 수강생을 출력하세요. (다음 형태를 활용하세요.  case when condition then value-for-true else value-for-false end )

select    c.cname,
case when startyear = 2008 then ' 신입생'               as '학생구분' ,

             as '수강생수'

from

where

group by

5)     신입생 수강 비율이 가장 높은 과목을 찾는 SQL을 작성하세요. 과목명과 신입생 비율이 노출되도록 해주세요.

select

from

where

group by

order by

태그 : DB,Quiz,SQL,도전