level 2
jack5282498
楼主
本人新手,在做SQL的联系题。
题目:查询学生的总成绩,并进行排名,总分重复时保留名次空缺。
正确SQL查询语句如下:
SET @cur:=0;
SELECT r.sid,total,@cur:=@cur+1 as rank FROM (
SELECT sid,sum(`成绩表`.score) as total FROM `成绩表`
GROUP BY `成绩表`.sid
ORDER BY total DESC
)as r;

本人自学研究SQL语句如下:
SET @paim:=0;
SELECT sid,SUM(score),@paim:=@paim+1 FROM `成绩表`
GROUP BY sid
ORDER BY SUM(score) DESC;

为什么我的排名是乱的,不是按照1,2,3,4,5,6,7,这种顺序来的,我的SQL错在哪里呢?
2018年08月02日 07点08分
1
题目:查询学生的总成绩,并进行排名,总分重复时保留名次空缺。
正确SQL查询语句如下:
SET @cur:=0;
SELECT r.sid,total,@cur:=@cur+1 as rank FROM (
SELECT sid,sum(`成绩表`.score) as total FROM `成绩表`
GROUP BY `成绩表`.sid
ORDER BY total DESC
)as r;

本人自学研究SQL语句如下:SET @paim:=0;
SELECT sid,SUM(score),@paim:=@paim+1 FROM `成绩表`
GROUP BY sid
ORDER BY SUM(score) DESC;

为什么我的排名是乱的,不是按照1,2,3,4,5,6,7,这种顺序来的,我的SQL错在哪里呢?