关于mysql进行学生成绩名次和及格率的计算
前言:最近在学习mysql,然后找到了一些面试题进行了练习,发现了几个有趣的面试题,在这里特地分享给大家,有如何计算名次以及及格率
一、mysql计算成绩排名
前提:以下是样例表的结构
1 Student(S_,Sname,Sage,Ssex) 学生表2 S_:学生编号,字符串型3 Sname: 学生姓名,字符串型4 Sage:年龄 ,数值型5 Ssex:性别,字符串型6
7 Course(C_,Cname,T_) 课程表8 C_:课程编号 ,字符串型 (企业管理001,马列002,UML 003,数据库004,英语006)9 Cname:课程名称 ,字符串型10 T_:教师编号,字符串型11
12 SC(S_,C_,score) 成绩表13 S_:学生编号 ,字符串型14 C_:课程编号 ,字符串型15 score:成绩,数值型16
17 Teacher(T_,Tname) 教师表18 T_:教师编号 ,字符串型19 Tname:教师姓名,字符串型
(一) 代码演示
1 SELECT
2 1+(3 SELECT
4 COUNT( DISTINCT平均成绩 )5 FROM
6 ( SELECT S_, AVG( score ) AS 平均成绩 FROM SC GROUP BY S_ ) AST17 WHERE
8 平均成绩 >T2.平均成绩9 ) AS名次,10 S_