SELECT * from 
    (SELECT avg(score) as '英语平均成绩',sum(CASE WHEN score>=60 THEN 1 ELSE 0 END)/COUNT(*) as '英语及格率'
  from SC WHERE c=3 ) a;

解决方案 »

  1.   

    SELECT 
    ??select * from (子查询)
      

  2.   

    原需求是
    按照刚才给的语句,只能这样写吗:SELECT * from 
        (SELECT avg(score) as '英语平均成绩',sum(CASE WHEN score>=60 THEN 1 ELSE 0 END)/COUNT(*) as '英语及格率'from SC WHERE c=3 ) a,
    (SELECT avg(score) as '企业管理平均成绩',sum(CASE WHEN score>=60 THEN 1 ELSE 0 END)/COUNT(*) as '企业管理及格率'from SC WHERE c=2)b,
    (SELECT avg(score) as '数据库平均成绩',sum(CASE WHEN score>=60 THEN 1 ELSE 0 END)/COUNT(*) as '数据库及格率' from SC WHERE c=1)c
      

  3.   

    SELECT (SELECT sum(CASE WHEN score>=60 THEN 1 ELSE 0 END)/COUNT(*) as '英语及格率'
     from SC WHERE c=3 ),(SELECT avg(score) as '英语平均成绩' from SC WHERE c=3)
    这个语句可以执行
      

  4.   

    SELECT * from 
       (SELECT avg(score) as '英语平均成绩',sum(CASE WHEN score>=60 THEN 1 ELSE 0 END)/COUNT(*) as '英语及格率'
     from SC WHERE c=3 ) t;