给定一个表,表内有重复的值。要求得到每个重复的值,并且得到每个值重复的次数。
例表
PHONE_NUMBER
15881587890
13795649465
13734936886
15881591968
15881591668
13881576515
15883476188
15082278777
15082260282
13778654777
13881584555
13795659699
13508208838
13518423002
13881558222
13708142899
13708148206
15082265698
13568650845
15881545029
13778628232
15881587998
13989260515
13881533061
13881588685
15884029082
13881471234
13981588670
13778688654
13568658886
13778620190
13778610041
15881556886
15884034270
13882456828
13684382041
15808280888
13458776018
15984997888
15881580691
13981512134
13550431497
15883475655
15882758668
15196163698
15881587890
13795649465
13734936886
15881591968
15881591668
13881576515
15883476188
15082278777
15082260282
13778654777
13881584555
13795659699
13508208838
13518423002
13881558222
13708142899
13708148206
15082265608
13568650845
15881545029
13778628222
15881587998
13989260515
13881533961
13881588685
15884029082
13881471234
13981588670
13778688654
13568658886
13778600190
13778610041
15881556886
15884034270
13882456828
13684382041
15808280888
13458776018
15984997888
15881580691
13981512134
13550431497
15883475655
15882758668
15196163698重复号码:
15881587890
13795649465
13734936886
15881591968
15881591668
13881576515
15883476188
15082278777
15082260282
13778654777
13881584555
13795659699
13508208838
13518423002
13881558222
13708142899
13708148206
13568650845
15881545029
15881587998
13989260515
13881588685
15884029082
13881471234
13981588670
13778688654
13568658886
13778610041
15881556886
15884034270
13882456828
13684382041
15808280888
13458776018
15984997888
15881580691
13981512134
13550431497
15883475655
15882758668
15196163698求每个号码重复次数

解决方案 »

  1.   

    补充:就是能不能写个SQL直接查出
    比如
    PHONE_NUMBER    重复次数
    15196163698      1
      

  2.   

    sql难写有没有其他处理类似问题的程序语言经验?有的话用procedure解决。
      

  3.   

    SQL> with tt as(select '123' PHONE_NUMBER from dual
      2  union all select '456' from dual
      3  union all select '123' from dual
      4  union all select '789' from dual
      5  union all select '456' from dual
      6  union all select '123' from dual
      7  )
      8  select PHONE_NUMBER,count(PHONE_NUMBER) from tt group by PHONE_NUMBER
      9  having count(PHONE_NUMBER) > 1;PHONE_NUMBER COUNT(PHONE_NUMBER)
    ------------ -------------------
    123                            3
    456                            2
      

  4.   

    恩,我也正在想个procedure
    能给个例子吗,感谢
      

  5.   


    这样可行?select PHONE_NUMBER, count(PHONE_NUMBER) from table group by PHONE_NUMBER;
      

  6.   


    上面只是测试用select PHONE_NUMBER,count(PHONE_NUMBER) 重复次数 from tt group by PHONE_NUMBER 
    having count(PHONE_NUMBER) > 1; 
    将tt换成你的表就ok了
      

  7.   

    SELECT PHONE_NUMBER,COUNT(PHONE_NUMBER) OVER (PARTITION BY PHONE_NUMBER )重复次数 FROM PHONES;