表 a ,字段为 name,age,sex,departmentid。请根据departmentid统计各部门的男女人数。    我写的sql语句为: select count(sex)"男",departmentid from department where sex='男' group by departmentid
 natural inner join 
 select count(sex)"女",departmentid from department where sex='女' group by departmentid;   请问是这样做吗?   运行时提示为:ORA-00933: SQL 命令未正确结束。这是怎么回事?

解决方案 »

  1.   

    with a as(
    select 'zhangsan' name,12 age,'male' sex,'A' department from dual
    union all
    select 'zhangsan2' name,12 age,'female' sex,'A' department from dual
    union all
    select 'zhangsan3' name,12 age,'male' sex,'B' department from dual
    union all
    select 'zhangsan4' name,12 age,'male' sex,'A' department from dual 
    )select sum(decode(sex,'male',1,0)) "男",sum(decode(sex,'female',1,0)) "女",department  from a 
    group by department
      

  2.   

    select sum(decode(sex,'male',1,0)) "男",sum(decode(sex,'female',1,0)) "女",department  from a 
    group by department
      

  3.   


       还不知道有 decode 这函数