select sum(case when 年龄段一 then 1 else 0) as 年龄段一,
       sum(case when 年龄段一 then 1 else 0) as 年龄段二,
       sum(case when 年龄段一 then 1 else 0) as 年龄段二
       .............
 from tab1 
       

解决方案 »

  1.   

    1  select sum(case when AGES<=20 then 1 else 0) as one,
      2         sum(case when AGES>20 and AGES<=30 then 1 else 0) as two,
      3         sum(case when ages>30 and ages<=40 then 1 else 0) as three,
      4         sum(case when ages>40 and ages<=50 then 1 else 0) as four,
      5         sum(case when ages>50 and ages<=60 then 1 else 0) as five,
      6         sum(case when ages>60 and ages<=70 then 1 else 0) as six,
      7         sum(case when ages>70 and ages<=80 then 1 else 0) as seven,
      8         sum(case when ages>80 and ages<=90 then 1 else 0) as eight,
      9         sum(case when ages>90 and ages<=100 then 1 else 0) as nine,
     10         sum(case when ages>100  then 1 else 0) as ten
     11*  from idc_citizen_age_view
    SQL> /
    select sum(case when AGES<=20 then 1 else 0) as one,
                                               *
    ERROR 位于第 1 行:
    ORA-00905: missing keyword楼上的兄弟,按你说的,我调试不过去啊。
      

  2.   

    select trunc(ages,-1) age,count(*) num from idc_citizen_age_view 
    group by trunc(ages,-1);
      

  3.   

    case后要有end。
    case when AGES>20 and AGES<=30 then 1 else 0 end