MYSQL如何给学生总成绩排名呢
我有张表记录学生成绩的
ID 考试代号 科目编号 学生号 班级号 成绩
1 1 1 1 12 12
3 1 2 1 12 11
4 1 3 1 12 10
5 1 1 2 12 12
6 1 2 2 12 21
7 1 3 2 12 23 如何创建视图或者使用查询语句得出考生号 科目1 科目2 科目3 总成绩 名次
1 12 11 10 33 2
2 12 21 23 56 1希望各位前辈给予支持,
我有张表记录学生成绩的
ID 考试代号 科目编号 学生号 班级号 成绩
1 1 1 1 12 12
3 1 2 1 12 11
4 1 3 1 12 10
5 1 1 2 12 12
6 1 2 2 12 21
7 1 3 2 12 23 如何创建视图或者使用查询语句得出考生号 科目1 科目2 科目3 总成绩 名次
1 12 11 10 33 2
2 12 21 23 56 1希望各位前辈给予支持,
解决方案 »
- java自定主注释!费解!望指教
- 怎么让spring事务管理不吞异常?
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid parame
- 帮忙解决一个查询问题
- 请教高手:如何根据Key取properties文件的Value程序?
- 当类名跟包名称一样时,怎么处理?
- 一个简单问题,解决立即给分
- validation 对于Integer[]形式的field应该如何校验?
- 关于xdoclet中ejbdoclet中的一个问题
- 分数和学生、分数和课程为什么是多对一的关系?
- 网站首页设置为静态
- 一个简单问题,谢谢帮忙!
select stuid ,sum(score) as allscore from 你给出的表名 group by stuid order by allscore在第一个视图的基础上建第二个临时表select distinct t1.stuid,t2.allscore sort = identity(int,1,1) into 临时表名 from 你给出的表名 t1 ,shitu1 t2where t1.stuid=t2.stuidorder by t2.allscore desc还要第三个视图select stuid ,score as score1, score as score2,score as score3 from 你给出的表名 t1 where
score1 in(t1.科目id =1)
score2 in(t1.科目id =2)
score3 in(t1.科目id =3)
然后临时表二 和 视图三 根据stuid链接下 就好了大概这样
否则的话 你就要使用存储过程 或者通过两次查询 然后在程序中去处理
exam考试表
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| exam_Id | int(10) | NO | PRI | NULL | auto_increment |
| exam_name | varchar(100) | YES | | NULL | |
| begintime | datetime | YES | | NULL | |
| endtime | datetime | YES | | NULL | |
| term | varchar(100) | YES | | NULL | |
| termId | int(10) | YES | | NULL | |
| gradeId | int(10) | YES | | NULL | |
| grade | varchar(100) | YES | | NULL | |
| other3 | varchar(500) | YES | | NULL | |
| other4 | text | YES | | NULL | |
+-----------+--------------+------+-----+---------+----------------+exam_score;成绩表
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| score_id | int(10) | NO | PRI | NULL | auto_increment |
| exm_id | int(10) | NO | PRI | 0 | |
| sub_id | int(10) | NO | PRI | NULL | |
| studentId | int(10) | NO | PRI | 0 | |
| classId | int(10) | YES | MUL | NULL | |
| score | double(5,2) | YES | | NULL | |
| termid | int(10) | YES | | NULL | |
| re | varchar(100) | YES | | NULL | |
+-----------+--------------+------+-----+---------+----------------+ exam_subject;考试科目表
+-------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+----------------+
| sub_id | int(10) | NO | PRI | NULL | auto_increment |
| exam_Id | int(10) | YES | MUL | NULL | |
| subjectname | varchar(100) | YES | | NULL | |
| subjectId | int(10) | YES | | NULL | |
| full | double(100,2) | YES | | NULL | |
| times | varchar(100) | YES | | NULL | |
| begintime | varchar(300) | YES | | NULL | |
| endtime | varchar(300) | YES | | NULL | |
| other1 | int(10) | YES | | NULL | |
| other2 | int(10) | YES | | NULL | |
| other3 | varchar(500) | YES | | NULL | |
| other4 | text | YES | | NULL | |
| pass_score | double(5,0) | YES | | NULL | |
| good_score | double(5,0) | YES | | NULL | |
| proportion | double(3,0) | YES | | NULL | |
+-------------+---------------+------+-----+---------+----------------+student_avg_score 学生平均成绩视图
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| classId | int(10) | YES | | NULL | |
| Avgscore | double(9,6) | YES | | NULL | |
| studentId | int(10) | NO | | 0 | |
| StudentName | varchar(100) | YES | | NULL | |
| exam_name | varchar(100) | YES | | NULL | |
| classname | varchar(100) | YES | | NULL | |
| exm_id | int(10) | NO | | 0 | |
| studentNO | int(10) | YES | | NULL | |
| gradeId | int(10) | NO | | 0 | |
| gradeName | varchar(255) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
要得到某次考试中某个学生的平均成绩的班级排名和年级排名
classId是班级编号
gradeId是年级编号
其中在student_avg_score这个视图中已经得到了这个学生的平均成绩及年级班级的相关信息
如何实现得到某次考试中某个学生的平均成绩的班级排名和年级排名