select name,count(name),sum(decode(sign(a1),1,decode(sign(a2-10),1,1)))a  from tab group by name9i 下可以这样:
select name,count(name),sum(case when a1>0 then 1 end) a , sum(case when a1>0 and a2 >10 then 1 end) from tab group by name

解决方案 »

  1.   


    select name,count(name),sum(decode(sign(a1),1,1,0)),sum(decode(sign(a1),1,decode(sign(a2-10),1,1,0),0)) from tab group by name呵呵,寻漏掉一列了
      

  2.   

    select name,count(name),
    sum(case when a1>0 then 1 else o end )a1,
    sum(case when a1>0 and a2>10 then 1 else 0 end)a2
    from tab group by name
      

  3.   

    你们写的结果都能出来, 但我不理解怎么是这样写,case when a1>0 then 1 else o end 是什么意思,还有decode(sign(a1),1,decode(sign(a2-10),1,1)是什么意思,能解释一下吗?