Sql 添加列以获取合计和排名合计
这是我的桌子 学生人数Sql 添加列以获取合计和排名合计,sql,rank,Sql,Rank,这是我的桌子 学生人数 ROLL_NO NAME CLASS HINDI MATHS SCIENCE 2 amit 11 91 91 81 3 anirudh 11 88 87 81 4 akash 11 82 81 85 5 pratik 10 81 99 98 7 rekha 10 79 97 82 6 neha 10 89 91 90 8 kamal 10 66 68 69 1
ROLL_NO NAME CLASS HINDI MATHS SCIENCE
2 amit 11 91 91 81
3 anirudh 11 88 87 81
4 akash 11 82 81 85
5 pratik 10 81 99 98
7 rekha 10 79 97 82
6 neha 10 89 91 90
8 kamal 10 66 68 69
1 ankit 11 97 98 87
我想添加最后三列,并在按类划分的总数上排名
这就是我试过的
select roll_no,name,class,total,
rank() over (partition by class order by total desc) as rank
from student_numbers,(select hindi+maths+science total from student_numbers)
;
但这是一个非常大的表,重复的学生名字有不同的总数。我不太确定你想要完成什么——按班级排列最高分数?如果是这样的话,类似的方法应该会奏效:
SELECT SN.Roll_No,
SN.Class,
SN2.Total,
RANK() OVER (PARTITION BY SN.Class ORDER BY SN2.Total DESC) as rank
FROM Student_Numbers SN
JOIN (
SELECT
Roll_no, hindi+maths+science as Total
FROM Student_Numbers
) SN2 ON SN.Roll_No = SN2.Roll_No
这是你的电话号码
祝你好运。试着用更有意义的话来代替“工作不正常”。