题目一
解答:
select avg(eglish) from mark;
select mark.math,cust.Name,cust.Address,cust.Telno from mark join cust on mark.studentno = cust.Studentno where cust.studentno in (11,22,33,44,55);
select cust.Name ,mark.computer form cust join mark on cust.Studentno = mark.studentno
order by mark.computer desc;
select cust.Studentno,cust.Name,english + math + computer total
from cust join mark on cust.Studentno = mark.studentno
having total > 240
order by total desc;
A. select count(‘王姓学生’) from Student where Student.name like ‘王%’;
B. select id from (
select
a.id
max(case when c.name = ‘语文’ then b.score end) chinese,
max(case when c.name = ‘数学’ then b.score end) math
from student a
join sc b on a.id = b.cid
join course c on c.id = b.cid
group by a.id
having math > chinese);
方法二:
Select a.*,math.score as 数学,chinese.score as 语文 from
student a,
(Select * from sc where cid=(Select id from course where name =‘数学’)) as math,
(Select * from sc where cid=(Select id from course where name =‘语文’)) as chinese
where a.id = math.sid
and math.sid = chinese.sid
and math.score>chinese.score;
C. select Student.id,avg(sores) from Student join SC on Student.id = SC.sid group by Student.id having avg(sores) > 90;
|