最新 人气 评论

mysql查询学生平均成绩及其名次

``` SELECT student_name,AVG(grade) as avg_grade,(SELECT COUNT(DISTINCT(AVG(grade))) FROM student_grade WHERE AVG(grade) > sg.AVG(grade))+1 AS rank FROM student_grade sg GROUP BY st

mysql查询各科成绩前三名的记录(不考虑成绩并列情况)

``` SELECT * FROM SCORE ORDER BY SUBJECT, SCORE DESC LIMIT 3; ```

mysql查询出只有两门课程的全部学生的学号和姓名

``` SELECT s_no,s_name FROM student WHERE s_no IN (SELECT s_no FROM course GROUP BY s_no HAVING COUNT(*) = 2); ```

mysql查询每门课程被选修的学生数

: SELECT course_name, COUNT(*) AS students_number FROM course_registration GROUP BY course_name;

mysql使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计各分数段人数:课程ID和课程名称

``` SELECT course_id, course_name, COUNT(CASE WHEN score BETWEEN 100 AND 85 THEN 1 END) AS '100-85', COUNT(CASE WHEN score BETWEEN 85 AND 70 THEN 1 END) AS '85-70',

mysql查询学生的总成绩并进行排名

``` SELECT stu_name,score_sum, @curRank := @curRank + 1 AS rank FROM student,(SELECT @curRank := 0) r ORDER BY score_sum DESC ```

mysql查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率

``` SELECT c.id, c.name, MAX(s.score) AS maxScore, MIN(s.score) AS minScore, AVG(s.score) AS avgScore, SUM(CASE WHEN s.score >= 60 THEN 1 ELSE 0 END)/COUNT(*) AS passRate,

mysql按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩

``` SELECT s.name AS '姓名', c.name AS '课程名称', s.score AS '成绩', AVG(s.score) AS '平均成绩' FROM student s, course c WHERE s.course_id = c.id GROUP BY c.name ORDER BY AVG(s.score) DESC; `
返回顶部 留言