Auto commit
This commit is contained in:
parent
cbfc0a1669
commit
a98fd5bb17
@ -495,25 +495,93 @@ LEFT JOIN courses c ON c.id = sc.course_id
|
|||||||
WHERE sc.score > 80 AND c.id = '01';
|
WHERE sc.score > 80 AND c.id = '01';
|
||||||
|
|
||||||
#32.求每门课程的学生人数
|
#32.求每门课程的学生人数
|
||||||
|
SELECT c.`name`, COUNT(*)
|
||||||
|
FROM scores s, courses c
|
||||||
|
WHERE s.course_id = c.id
|
||||||
|
GROUP BY c.id;
|
||||||
#33.成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
|
#33.成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
|
||||||
|
SELECT st.`name`, sc.score
|
||||||
|
FROM students st, scores sc, courses c, teachers t
|
||||||
|
WHERE st.id = sc.student_id AND sc.course_id = c.id
|
||||||
|
AND c.teacher_id = t.id AND t.`name` = '张三'
|
||||||
|
ORDER BY sc.score DESC
|
||||||
|
LIMIT 1;
|
||||||
|
|
||||||
#34.成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
|
#34.成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
|
||||||
|
SELECT st.`name`, sc.score
|
||||||
|
FROM students st, scores sc
|
||||||
|
WHERE st.id = sc.student_id AND sc.score = (
|
||||||
|
SELECT MAX(score)
|
||||||
|
FROM scores, courses, teachers
|
||||||
|
WHERE scores.course_id = courses.id
|
||||||
|
AND courses.teacher_id = teachers.id AND teachers.`name` = '张三'
|
||||||
|
);
|
||||||
#35.查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
|
#35.查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
|
||||||
|
SELECT st.id, sc1.course_id, sc1.score
|
||||||
|
FROM students st, scores sc1
|
||||||
|
WHERE st.id = sc1.student_id AND sc1.score = ANY(
|
||||||
|
SELECT sc2.score
|
||||||
|
FROM scores sc2
|
||||||
|
WHERE sc2.student_id = st.id AND sc2.course_id != sc1.course_id
|
||||||
|
);
|
||||||
|
|
||||||
#36.查询每门课成绩最好的前两名
|
#36.查询每门课成绩最好的前两名
|
||||||
|
SELECT c1.`name`, c1.score
|
||||||
|
FROM (
|
||||||
|
SELECT c.`name`, sc.score
|
||||||
|
FROM scores sc, courses c
|
||||||
|
WHERE sc.course_id = c.id AND c.id = '01'
|
||||||
|
ORDER BY sc.score DESC
|
||||||
|
LIMIT 2
|
||||||
|
)c1
|
||||||
|
UNION ALL
|
||||||
|
SELECT c2.`name`, c2.score
|
||||||
|
FROM (
|
||||||
|
SELECT c.`name`, sc.score
|
||||||
|
FROM scores sc, courses c
|
||||||
|
WHERE sc.course_id = c.id AND c.id = '02'
|
||||||
|
ORDER BY sc.score DESC
|
||||||
|
LIMIT 2
|
||||||
|
)c2
|
||||||
|
UNION ALL
|
||||||
|
SELECT c3.`name`, c3.score
|
||||||
|
FROM (
|
||||||
|
SELECT c.`name`, sc.score
|
||||||
|
FROM scores sc, courses c
|
||||||
|
WHERE sc.course_id = c.id AND c.id = '03'
|
||||||
|
ORDER BY sc.score DESC
|
||||||
|
LIMIT 2
|
||||||
|
)c3;
|
||||||
#37.统计每门课程的学生选修人数(超过 5 人的课程才统计)
|
#37.统计每门课程的学生选修人数(超过 5 人的课程才统计)
|
||||||
|
SELECT c.`name`, COUNT(*) c
|
||||||
|
FROM scores s, courses c
|
||||||
|
WHERE s.course_id = c.id
|
||||||
|
GROUP BY c.id
|
||||||
|
HAVING c>5;
|
||||||
|
|
||||||
#38.检索至少选修两门课程的学生学号
|
#38.检索至少选修两门课程的学生学号
|
||||||
|
SELECT st.id, st.`name`
|
||||||
|
FROM students st
|
||||||
|
WHERE (
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM scores sc
|
||||||
|
WHERE sc.student_id = st.id
|
||||||
|
)>=2;
|
||||||
#39.查询选修了全部课程的学生信息
|
#39.查询选修了全部课程的学生信息
|
||||||
|
SELECT st.*
|
||||||
|
FROM students st, scores sc
|
||||||
|
WHERE st.id = sc.student_id
|
||||||
|
GROUP BY st.id
|
||||||
|
HAVING COUNT(*) = 3;
|
||||||
|
|
||||||
#40.查询各学生的年龄,只按年份来算
|
#40.查询各学生的年龄,只按年份来算
|
||||||
|
SELECT s.`name`, TIMESTAMPDIFF(YEAR,s.birth,NOW())
|
||||||
|
FROM students s;
|
||||||
|
|
||||||
#41.查询各学生的年龄,按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一
|
#41.查询各学生的年龄,按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一
|
||||||
|
SELECT s.`name`, IF(DATE_FORMAT(s.birth,'%m-%d') < DATE_FORMAT(NOW(),'%m-%d'),
|
||||||
|
TIMESTAMPDIFF(YEAR,s.birth,NOW())-1, TIMESTAMPDIFF(YEAR,s.birth,NOW()))
|
||||||
|
FROM students s;
|
||||||
|
|
||||||
#42.查询本周过生日的学生
|
#42.查询本周过生日的学生
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user