select 课程,sum(case when 分数>=90 then 1
when 90>分数>=80 then 1
when 80>分数>=70 then 1
when 70>分数>=60 then 1
when 分数<60 then 1) as 人数,
sum(case when 分数>=90 then 分数 /sum(case when 分数>=90 then 1 )
when 90>分数>=80 then 分数 /sum(case when 90>分数>=80 then 1)
when 80>分数>=70 then 分数 /sum(case when 80>分数>=70 then 1 )
when 70>分数>=60 then 分数 /sum(case when 70>分数>=60 then 1 )
when 分数<60 then 分数 /sum(case when 分数<60 then 1 ) as 平均分数
from studentscore order by 课程提示:第 2 行: '>' 附近有语法错误。
when 90>分数>=80 then 1
when 80>分数>=70 then 1
when 70>分数>=60 then 1
when 分数<60 then 1) as 人数,
sum(case when 分数>=90 then 分数 /sum(case when 分数>=90 then 1 )
when 90>分数>=80 then 分数 /sum(case when 90>分数>=80 then 1)
when 80>分数>=70 then 分数 /sum(case when 80>分数>=70 then 1 )
when 70>分数>=60 then 分数 /sum(case when 70>分数>=60 then 1 )
when 分数<60 then 分数 /sum(case when 分数<60 then 1 ) as 平均分数
from studentscore order by 课程提示:第 2 行: '>' 附近有语法错误。
select 课程,sum(case when 分数 is not null then 1 end) as 人数
sum(分数)/sum(case when 分数 is not null then 1 end)as 平均分数
from studentscore order by 课程
HTTP://www.ebigear.com/Fund/PlayNews.php?NewsID=29453&ID=285885
select 课程,sum(case when 分数 is not null then 1 end) as 人数,
sum(分数)/sum(case when 分数 is not null then 1 end)as 平均分数
from studentscore order by 课程
语法有错误,应该这样来写:
when 分数<90 AND 分数>=80 then 1
SQL中不支持"90>分数>=80 "这样的表达式
select
IsNull(C2.人数,0) AS '人数',
IsNull(C2.平均分,0) AS '平均分',
IsNull(C3.人数,0) AS '人数',
IsNull(C3.平均分,0) AS '平均分'
from
(select count(id)as'人数', sum(分数)/sum(case when 分数 is not null then 1 end)as '平均分' from studentscore
where 分数<90 AND 分数>=80 ) C2 ,
(select count(id)as'人数', sum(分数)/sum(case when 分数 is not null then 1 end)as '平均分' from studentscore
where 分数<80 AND 分数>=70 ) C3 ,
when 分数<90 AND 分数>=80 then 1
when 分数<80 AND 分数>=70 then 1
when 分数<70 AND 分数>=60 then 1
when 分数<60 then 1) as 人数,
sum(case when 分数>=90 then 分数 /sum(case when 分数>=90 then 1 )
when 分数<90 AND 分数>=80 then 分数 /sum(case when 90>分数>=80 then 1)
when 分数<80 AND 分数>=70 then 分数 /sum(case when 80>分数>=70 then 1 )
when 分数<70 AND 分数>=60 then 分数 /sum(case when 70>分数>=60 then 1 )
when 分数<60 then 分数 /sum(case when 分数<60 then 1 ) as 平均分数
from studentscore order by 课程
现在提示:
服务器: 消息 170,级别 15,状态 1,行 6
第 6 行: ')' 附近有语法错误。
语法上看~~case 的语法是case when then end ~你没写end
下面是我目前的代码:select 课程,sum(case when 分数>=90 then 1
when 分数<90 AND 分数>=80 then 1
when 分数<80 AND 分数>=70 then 1
when 分数<70 AND 分数>=60 then 1
when 分数<60 then 1 end ) as 人数,
sum(case when 分数>=90 then 分数 /sum(case when 分数>=90 then 1 )
when 分数<90 AND 分数>=80 then 分数 /sum(case when 分数<90 AND 分数>=80 then 1)
when 分数<80 AND 分数>=70 then 分数 /sum(case when 分数<80 AND 分数>=70 then 1 )
when 分数<70 AND 分数>=60 then 分数 /sum(case when 分数<70 AND 分数>=60 then 1 )
when 分数<60 then 分数 /sum(case when 分数<60 then 1 end )) as 平均分数
from studentscore order by 课程
提示:服务器: 消息 170,级别 15,状态 1,行 6
第 6 行: ')' 附近有语法错误。请问如何更改