表student ,ID主键
ID  NAME  CLASS      SCORE
01     a       1        70
09     b       2        90
04     f       4        58
03     h       2        67
05     j        3        45
08     p        1        78
06     k        1        49
02     l         4        65
统计分数大于等级60的班级数(只要有一个学生成绩大于等于60就符合要求)
统计

解决方案 »

  1.   


    SELECT COUNT(DISTINCT(CLASS))
      FROM student
     WHERE score > 60
      

  2.   

    楼主简单的把表中的每个字段代表什么意义说下。
    我的理解是,id是学生的id,name是学生的姓名,score是学生的分数。
    class是班级号吗?班级数是用去重的class来求的吗?
    如果我理解的没有错,一楼的做法就是正解。
      

  3.   

    就是这样,但我真正想要的还有一个条件。比如在这张表中再增加两个字段
    表student ,ID主键
    ID  NAME  CLASS  SCORE     AGE       SEX
    01     a       1        70       15          0
    09     b       2        90       19          1
    04     f       4        58        20          0
    03     h       2        67        16           0
    05     j        3        45        19         1
    08     p        1        78        17        1
    06     k        1        49        19         0
    02     l         4        65       17          1
    统计分数大于等级60的且年龄要小于18的班级数目(只要有一个学生大于等于60且小于18就符合要求),然后按性别分组
      

  4.   


    --没太看懂你的意思.下面的你可以测一下.
       SELECT class class
             ,sex     sex
             ,COUNT(CLASS)
          -- ,COUNT(CLASS) over (PARTITION BY CLASS,sex)  
         FROM temp
        WHERE score >= 60
          AND age < 18
     GROUP BY class
             ,sex