问题如下: 
oracle 数据库表中有如下字段
序列  区号    用户数
1     57001    10
2     57002    20
3     57101    10
4     57102    20
5     57201    10
6     57202    20
7     57203    30现在我需要查询里面的统计数,也就是570、571、572各有多少用户?
应该如何写这个SQL语句呢? 请高人帮忙解答下,谢谢了!实现结果如下:
序号   区号    用户数
1      570      30
2      571      30
3      572      60

解决方案 »

  1.   

    SELECT ROW_NUMBER(),SUBSTR(区号,1,3),SUM(用户数)
    FROM t
    GROUP BY SUBSTR(区号,1,3)
      

  2.   

    create table test(序列 int,区号 int,用户数 int  );
    insert into test values(1,57001,10);
    insert into test values(2,57002,20);
    insert into test values(3,57001,10);
    insert into test values(4,57002,20);
    insert into test values(5,57001,10);
    insert into test values(6,57002,20);
    insert into test values(7,57003,30);
    commit;
    select rownum 序号, a.*
      from (select substr(t.区号, 1, 3) 区号, sum(t.用户数) 用户数
              from test t
             group by substr(t.区号, 1, 3)
             order by substr(t.区号, 1, 3)) a;