Auto commit

This commit is contained in:
smallkun 2025-02-25 18:43:00 +08:00
parent d44aeed220
commit 5627a1c82e

View File

@ -340,28 +340,90 @@ GROUP BY c.id
ORDER BY AVG(sc.score) DESC;
#14.查询各科成绩最高分、最低分和平均分:以如下形式显示:课程 ID课程 name最高分最低分平均分及格率中等率优良率优秀率及格为>=60中等为70-80优良为80-90优秀为>=90
SELECT c.id '课程ID', c.`name` '课程名称', MAX(s.score) '最高分', MIN(s.score) '最低分', ROUND(AVG(s.score), 1) '平均值'
FROM scores s, courses c
WHERE s.course_id = c.id
SELECT c.id '课程ID', c.`name` '课程名称', MAX(s.score) '最高分', MIN(s.score) '最低分', ROUND(AVG(s.score), 1) '平均值',
s2.s1 '及格率', s2.s2 '中等率', s2.s3 '优良率', s2.s4 '优秀率'
FROM scores s, courses c,
(
SELECT s.course_id,
CONCAT(TRUNCATE(COUNT(IF(s.score >=60, TRUE, NULL))/sc.count*100,2), '%') s1,
CONCAT(TRUNCATE(COUNT(IF(s.score >=70 AND s.score < 80, TRUE, NULL))/sc.count*100,2), '%') s2,
CONCAT(TRUNCATE(COUNT(IF(s.score >=80 AND s.score < 90, TRUE, NULL))/sc.count*100,2), '%') s3,
CONCAT(TRUNCATE(COUNT(IF(s.score >=90, TRUE, NULL))/sc.count*100,2), '%') s4
FROM scores s, (
SELECT course_id, COUNT(*) count
FROM scores
GROUP BY course_id
) sc
WHERE s.course_id = sc.course_id
GROUP BY s.course_id
)s2
WHERE s.course_id = c.id AND c.id = s2.course_id
GROUP BY c.id;
SELECT s.course_id,
CONCAT(TRUNCATE(COUNT(IF(s.score >=60, TRUE, NULL))/sc.count*100,2), '%') s1,
CONCAT(TRUNCATE(COUNT(IF(s.score >=70 AND s.score < 80, TRUE, NULL))/sc.count*100,2), '%') s2,
CONCAT(TRUNCATE(COUNT(IF(s.score >=80 AND s.score < 90, TRUE, NULL))/sc.count*100,2), '%') s3,
CONCAT(TRUNCATE(COUNT(IF(s.score >=90, TRUE, NULL))/sc.count*100,2), '%') s4
FROM scores s, (
SELECT course_id, COUNT(*) count
FROM scores
GROUP BY course_id
) sc
WHERE s.course_id = sc.course_id
GROUP BY s.course_id;
#15.按各科成绩进行排序,并显示排名, Score 重复时保留名次空缺
#15.1按各科成绩进行排序,并显示排名, Score 重复时合并名次
#16.查询学生的总成绩,并进行排名,总分重复时保留名次空缺
#16.1查询学生的总成绩,并进行排名,总分重复时不保留名次空缺
#17.统计各科成绩各分数段人数:课程编号,课程名称,[100-85][85-70][70-60][60-0] 及所占百分比
#18.查询各科成绩前三名的记录
#19.查询每门课程被选修的学生数
#20.查询出只选修两门课程的学生学号和姓名
#21.查询男生、女生人数
#22.查询名字中含有「风」字的学生信息
#23.查询同名同性学生名单,并统计同名人数
#24.查询 1990 年出生的学生名单
#25.查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列
#26.查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩
#27.查询课程名称为「数学」,且分数低于 60 的学生姓名和分数
#28.查询所有学生的课程及分数情况(存在学生没成绩,没选课的情况)
#29.查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数
#30.查询不及格的课程
#31.查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名
#32.求每门课程的学生人数
#33.成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
#34.成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
#35.查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
#36.查询每门课成绩最好的前两名
#37.统计每门课程的学生选修人数(超过 5 人的课程才统计)
#38.检索至少选修两门课程的学生学号
#39.查询选修了全部课程的学生信息
#40.查询各学生的年龄,只按年份来算
#41.查询各学生的年龄,按照出生日期来算,当前月日 < 出生年月的月日则年龄减一
#42.查询本周过生日的学生
#43.查询下周过生日的学生
#44.查询本月过生日的学生
#45.查询下月过生日的学生
```