表名:school
列:class --班级
    name --学生名字
    sex   --学生性别 值为M是男性  值为F为女性求一SQL语句:输出男性与女性学生个数相同的班级

解决方案 »

  1.   

    select class from
       (select class,sum(decode(sex,'M',1)) man,sum(decode(sex,'F',1)) woman from school group by class) v
    where v.man=v.woman;
      

  2.   

    select class
    from
    (select class,decode(sex,'M',1,-1) sex_num
    from school)
    group by class
    having sum(sex_num)=0
      

  3.   

    SELECT CLASS ,CLASS_SEX_COUNT FROM (
    SELECT CLASS , SEX COUNT(*) CLASS_SEX_COUNT FROM school GROUP BY CLASS,SEX 
    )  GROUP BY CLASS ,CLASS_SEX_COUNT
      

  4.   

    SELECT CLASS ,CLASS_SEX_COUNT FROM (
    SELECT CLASS , SEX, COUNT(*) CLASS_SEX_COUNT FROM school GROUP BY CLASS,SEX 
    )  GROUP BY CLASS ,CLASS_SEX_COUNT
    上面的丢了个逗号!
      

  5.   


    select t.class,
           t.malenum,
           t.femalenum
    from
    (
      select male.class,
             male.malenum malenum,
             female.femalenum femalenum
      from
      (
        select class,
               count(sex) malenum
        from   school
        where  sex='M'
        group by class
      ) male,
      (
        select class,
               count(sex) femalenum
        from   school
        where  sex='F'
        group by class
      ) female
      where male.class=female.class
    ) t
    where t.malenum=t.femalenum
      

  6.   

    select a.class from
     (select class ,sex ,count(name)  man from school  group by (class,sex) having sex='m') a,
    (select select class ,sex ,count(name) f from school  group by (class,sex) having sex='f')b
     where a.class=b.class and man=f;
      

  7.   

    select a.class
      from (select class, sum(decode(sex, 'm', 1)) x from school group by class ) a,
           (select class, sum(decode(sex, 'f', 1)) y from school group by class) b
     where a.class = b.class and a.x=b.y
      

  8.   

    SQL code
    select class
    from
    (select class,decode(sex,'M',1,-1) sex_num
    from school)
    group by class
    having sum(sex_num)=0
    [/Quote]思路清晰,易理解,学习了
      

  9.   

    select a.class
      from (select class, sum(decode(sex, 'm', 1)) x from school group by class ) a,
      (select class, sum(decode(sex, 'f', 1)) y from school group by class) b
     where a.class = b.class and a.x=b.y