--创建测试环境
create table testExam(id int,学号 varchar(10),成绩 numeric(5,2),考试次数 int,考试类型 varchar(10))
--插入测试数据
insert testExam(id,学号,成绩,考试次数,考试类型)
select '1','aaa','56','1','体育' union all
select '2','bbb','60','1','体育' union all
select '3','ccc','58','1','体育' union all
select '4','aaa','30','2','体育' union all
select '5','bbb','69','2','体育' union all
select '6','ccc','45','2','体育' union all
select '7','aaa','29','3','体育'
--查询考试次数相同的最大ID
select * from testExam t
where t.id=(select max(id) from testExam where 考试次数=t.考试次数)
id 学号 成绩 考试次数 考试类型
7 aaa 29.00 3 体育
6 ccc 45.00 2 体育
3 ccc 58.00 1 体育
--查询相同考试次数的考试人数和合格率
select 考试次数,考试类型,count(*) 参加考试人数,
convert(varchar(10),convert(numeric(10,1), 100.0*sum(case when 成绩>=60 then 1 else 0 end)/count(*)))+'%' as 合格率
from testExam group by 考试次数,考试类型
考试次数 考试类型 参加考试人数 合格率
1 体育 3 33.3%
2 体育 3 33.3%
3 体育 1 0.0%