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';
|
||||
|
||||
#32.求每门课程的学生人数
|
||||
|
||||
|
||||
SELECT c.`name`, COUNT(*)
|
||||
FROM scores s, courses c
|
||||
WHERE s.course_id = c.id
|
||||
GROUP BY c.id;
|
||||
#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.成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
|
||||
|
||||
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.查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
|
||||
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.查询每门课成绩最好的前两名
|
||||
|
||||
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 人的课程才统计)
|
||||
SELECT c.`name`, COUNT(*) c
|
||||
FROM scores s, courses c
|
||||
WHERE s.course_id = c.id
|
||||
GROUP BY c.id
|
||||
HAVING c>5;
|
||||
|
||||
#38.检索至少选修两门课程的学生学号
|
||||
|
||||
SELECT st.id, st.`name`
|
||||
FROM students st
|
||||
WHERE (
|
||||
SELECT COUNT(*)
|
||||
FROM scores sc
|
||||
WHERE sc.student_id = st.id
|
||||
)>=2;
|
||||
#39.查询选修了全部课程的学生信息
|
||||
SELECT st.*
|
||||
FROM students st, scores sc
|
||||
WHERE st.id = sc.student_id
|
||||
GROUP BY st.id
|
||||
HAVING COUNT(*) = 3;
|
||||
|
||||
#40.查询各学生的年龄,只按年份来算
|
||||
SELECT s.`name`, TIMESTAMPDIFF(YEAR,s.birth,NOW())
|
||||
FROM students s;
|
||||
|
||||
#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.查询本周过生日的学生
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user