有一个学生成绩表,我想取出每个班级前三名的学生和总成绩,用一条sql语句怎么写?
------解决思路----------------------
;WITH CTE AS(
SELECT 班级,姓名,SUM(成绩)[总成绩]
,ROW_NUMBER()OVER(PARTITION BY 班级 ORDER BY SUM(成绩) DESC)RN
FROM TB
GROUP BY 班级,姓名
)
SELECT * FROM CTE WHERE RN<=3
;WITH CTE AS(
SELECT 班级,姓名,SUM(成绩)[总成绩]
,ROW_NUMBER()OVER(PARTITION BY 班级 ORDER BY SUM(成绩) DESC)RN
FROM TB
GROUP BY 班级,姓名
)
SELECT * FROM CTE WHERE RN<=3