SELECT A.学号, A.姓名, B.总成绩,
(
SELECT COUNT(*) + 1 AS 排名
FROM (
SELECT 学号, SUM(成绩) AS 总成绩
FROM 成绩表
GROUP BY 学号
) C
WHERE C.总成绩 > B.总成绩
) AS 排名
FROM 学生表 A
INNER JOIN (
SELECT 学号, SUM(成绩) AS 总成绩
FROM 成绩表
GROUP BY 学号
) B ON B.学号 = A.学号
ORDER BY B.总成绩 DESC
(
SELECT COUNT(*) + 1 AS 排名
FROM (
SELECT 学号, SUM(成绩) AS 总成绩
FROM 成绩表
GROUP BY 学号
) C
WHERE C.总成绩 > B.总成绩
) AS 排名
FROM 学生表 A
INNER JOIN (
SELECT 学号, SUM(成绩) AS 总成绩
FROM 成绩表
GROUP BY 学号
) B ON B.学号 = A.学号
ORDER BY B.总成绩 DESC
select count(distinct 总成绩) from(
select 学号,总成绩=sum(成绩) from 成绩表 group by 学号
)aa where 总成绩>=b.总成绩)
from 学生表 a
join(select 学号,总成绩=sum(成绩) from 成绩表 group by 学号)b on a.学号=b.学号