说明
之前的互评结束之后就无法查看答案,所以想着互评期间把答案保存下来,方便之后进行复习
sql
# 1.1
select ID, name,sec_id
from instructor natural left outer join teaches;
# 1.2
select ID,name, count(sec_id) as Numberofsetions
from instructor natural left outer join teaches
group by ID,name
# 1.3
select ID,name,
(select count(*) a from teaches T where T.id = I.id) Numberofsetions
from instructor I;
# 2.1
select course_id, sec_id, ID,decode(name, null, '-', name) as name
from (section natural left outer join teaches)
natural left outer join instructor
where semester='Spring' and year= 2020;
# 2.2
select dept_name, count(ID)
from department natural left outer join instructor
group by dept_name;
# 2.3
select dept_name,
(select count(*) a from instructor i where i.dept_name=d.dept_name ) Numberofinstructors
from department d;
# 3.1
(select sum(credits * points)
from (takes natural join course) natural join grade_points
where ID = '12345')
union
(select 0
from student
where ID = '12345' and
not exists ( select * from takes where takes.ID = '12345'))
# 3.2
(select sum(credits * points)/sum(credits) as GPA
from (takes natural join course) natural join grade_points
where ID = '12345')
union
(select null as GPA
from student
where ID = '12345' and
not exists ( select * from takes where takes.ID = '12345'))
# 3.3
(select ID, sum(credits * points)/sum(credits) as GPA
from (takes natural join course) natural join grade_points
group by ID)
union
(select ID, null as GPA
from student
where not exists ( select * from takes where takes.ID = student.ID))