這是一道面試題
題目**--
--學生表字段分別表示:學生id,學生所屬班級id,學生名稱
create table student (
std_id varchar(30) primary key,
cls_id varchar(30),
std_name varchar(30),
constraint cls_id_fk1 foreign key(cls_id) references class(cls_id)
)--班級表字段分別表示:班級id,班級名稱
create table class (
cls_id varchar(30) primary key,
cls_name varchar(30)
)--分數表字段分別表示:分數id,學生id,課程id,
create table score (
s_id varchar(30),
std_id varchar(30),
t_id varchar(30),
s_value int,
constraint std_id_fk1 foreign key(std_id) references student(std_id),
constraint t_id_fk1 foreign key(t_id) references timetable(t_id)
)--課程表字段分別表示:課程id,課程名稱
create table timetable (
t_id varchar(30) primary key,
t_name varchar(30)
)drop table class;
drop table timetable;
drop table score;
insert into class (cls_id,cls_name) values ('cls001','a');
insert into class (cls_id,cls_name) values ('cls002','b');
insert into class (cls_id,cls_name) values ('cls003','c');
insert into class (cls_id,cls_name) values ('cls004','d');
insert into timetable (t_id,t_name) values ('t001','語文');
insert into timetable (t_id,t_name) values ('t002','數學');
insert into timetable (t_id,t_name) values ('t003','英語');
insert into timetable (t_id,t_name) values ('t004','化學');
insert into student (std_id,cls_id,std_name) values ('std001','cls001','張三');
insert into student (std_id,cls_id,std_name) values ('std002','cls001','李四');
insert into student (std_id,cls_id,std_name) values ('std003','cls002','王五');
insert into student (std_id,cls_id,std_name) values ('std004','cls003','小劉');
insert into student (std_id,cls_id,std_name) values ('std005','cls004','大氣');
insert into score (s_id,std_id,t_id,s_value) values ('s001','std001','t001',23);
insert into score (s_id,std_id,t_id,s_value) values ('s002','std001','t001',33);
insert into score (s_id,std_id,t_id,s_value) values ('s003','std001','t002',59);
insert into score (s_id,std_id,t_id,s_value) values ('s004','std002','t003',66);
insert into score (s_id,std_id,t_id,s_value) values ('s005','std002','t004',72);
insert into score (s_id,std_id,t_id,s_value) values ('s006','std003','t001',87);
insert into score (s_id,std_id,t_id,s_value) values ('s007','std003','t002',99);
insert into score (s_id,std_id,t_id,s_value) values ('s008','std004','t003',61);
insert into score (s_id,std_id,t_id,s_value) values ('s009','std005','t004',94);
insert into score (s_id,std_id,t_id) values ('s010','std005','t004');
insert into score (s_id,std_id,t_id,s_value) values ('s011','std001','t003',86);
insert into score (s_id,std_id,t_id,s_value) values ('s012','std002','t003',88);
select * from class;
select * from timetable;
select * from student;
select * from score;
----請查詢某一科目分數大於85分的所有學生的名單,
----查詢列包括 學生姓名,班級名稱,大於等於85分的科目數,小於85(包含無成績的)科目數;
select student.std_name,class.cls_name,
sum(case when score.s_value>=85 then 1 else 0 end) as '大於等於85分的科目數',
sum(case when score.s_value>=85 then 0 else 1 end) as '小於85(包含無成績的)科目數',timetable.t_name,count(*)
from student,class,score,timetable
where score.t_id=timetable.t_id
and score.std_id=student.std_id
and student.cls_id=class.cls_id
or score.s_value=null
group by score.std_id