select
tmp1.学校
,count(tmp1.姓名) AS 人数
,convert(varchar(10), 100*(100.*count(tmp1.姓名) /sum(count(tmp1.姓名)))) +'%' AS 百分比
(
SELECT
学校
,姓名
,dense_Rank() OVER(partition by 学校,姓名 order by 总粉 desc) as D_Rank
FROM 成绩表
) as tmp1
where D_Rank<=1000
GROUP BY 学校