摘要:
-- 1、查询“01”课程比“02”课程成绩高的所有学生的学号;
SELECT a.sid
FROM
(SELECT sid, score
FROM sc
WHERE cid=01) a,
(SELECT sid ,score
FROM sc
WHERE cid=02) b
WHERE a.score > b.score AND a.sid= b.sid;
SELECT a.sid
FROM student a
LEFT JOIN SC b ON b.cid=01 AND a.sid=b.sid
LEFT JOIN SC c ON c.cid=02 AND a.sid=c.sid
WHERE b.score>c.score;
-- 2、查询平均成绩大于60分的同学的学号和平均成绩;
SELECT sid 学号, AVG(score) 平均成绩
FROM sc
GROUP BY sid
HAVING 平均成绩 > 60;
SELECT sid, AVG(score)
FROM sc
GROUP BY sid
HAVING AVG(score)>60;
-- 3、查询所有同学的学号、姓名、选课数、总成绩;
SELECT s.sid 学号, s.sname 姓名, COUNT(*) 选棵数, SUM(score) 总成绩
FROM student s, sc
WHERE s.sid = sc.sid
GROUP BY sc.sid;
SELECT s.sid, sname, COUNT(*), SUM(score)
FROM student s
LEFT JOIN sc ON s.sid = sc.sid
GROUP BY sc.sid;
1