假设表如下:班级 学号 姓名 科目 成绩
1    11   11   1    70
1    12   12   1    59
1    13   13   2    80
2    21   21   1    60
2    22   22   1    40我想查班级=1 and 科目=1 的总人数,平均分和不及格人数,SQL语句该如何写好?

解决方案 »

  1.   

    select 
      count(1) as 总人数,
      avg(成绩) as 平均分,
      sum(case when 成绩<60 then 1 else 0 end) as 不及格人数
    from tb
    where 班级=1 and 科目=1
      

  2.   

    select 班级,学号,姓名,科目,avg(成绩),SUM(case when 成绩<60 then 1 else 0 end)不及格人数 from tb where 班级=1 and 科目=1 
      

  3.   

    非常感谢各位的解答!顺便问一下,如果想用三个label控件分别把总人数,平均分和不及格人数这三个数值显示出来,显示语句又该如何编写呢?PS:我用的是.net编程。
      

  4.   


    .net编程需要到.NET板块去问,建议楼主把这个帖子结了,然后在.NET再开一帖提问
      

  5.   

    这是程序问题  查询到 帮定值就OK了label.Text=...
      

  6.   

    SQL的问题解决了就结贴吧楼主
    .net的问题在这里喊救命,喊破嗓子也没有用啊。