日期:2014-05-17 浏览次数:20652 次
with t(姓名,课程,成绩) as(
select '张三','语文',78
union all select '张三','数学',94
union all select '李斯','语文',75
union all select '李斯','英文',80
)
select
convert(varchar(20),convert(numeric(7,2),sum(case when 平均成绩>=0 and 平均成绩<60 then 1 else 0 end)*1.0/count(1)*100))+'%' [0-60占百分比],
convert(varchar(20),convert(numeric(7,2),sum(case when 平均成绩>=60 and 平均成绩<80 then 1 else 0 end)*1.0/count(1)*100))+'%' [60-80占百分比],
convert(varchar(20),convert(numeric(7,2),sum(case when 平均成绩>=80 and 平均成绩<100 then 1 else 0 end)*1.0/count(1)*100))+'%' [80-100占百分比]
from (select avg(成绩) 平均成绩 from t group by 姓名) t1
/*
0-60占百分比 60-80占百分比 80-100占百分比
--------------------- --------------------- ---------------------
0.00% 50.00% 50.00%
*/