zoukankan      html  css  js  c++  java
  • 【oracle】查本当连续无重复的序列有无重复,重复多少个,再清除重复项

    这是一次实验,为这次实验需要准备一张表,建表语句如下。

    create table emp1(
    id int,
    name nvarchar2(20));

    为了让这表的id字段有重复可以这样给它插值:

    insert into emp1
    select dbms_random.value(1,1000),
    dbms_random.string('*',dbms_random.value(1,20))
    from dual
    connect by level<2000;

    然后,对id分组,查看每组中数量多于一个的就大体知道重复的情况了。

    select count(*) as cnt,id from emp1 group by id having count(*)>1

    要知道将要删除多少数据可以把上面的语句做个子查询,然后把cnt字段统计起来。

    select sum(cnt) from 
    (select count(*)-1 as cnt from emp1 group by id having count(*)>1)

    上面多了一个-1,那是因为重复的组还需要保留一条。

    也可以执行下面的语句查看将要删除的记录数。

    select count(*) from emp1 a where a.rowid<(select max(rowid) from emp1 b where a.id=b.id)

    要删除重复记录把上面的语句从查询改成删除就好了。

    delete from emp1 a where a.rowid<(select max(rowid) from emp1 b where a.id=b.id)

    删完后,就可以给id列加上主键了。

    alter table emp1 add constraint emp1_pk primary key(id);

    上面实验所有的SQL执行情况如下:

      1 SQL> drop table emp1;
      2 
      3 表已删除。
      4 
      5 SQL> create table emp1(
      6   2  id int,
      7   3  name nvarchar2(20));
      8 
      9 表已创建。
     10 
     11 SQL> insert into emp1
     12   2  select dbms_random.value(1,1000),
     13   3  dbms_random.string('*',dbms_random.value(1,20))
     14   4  from dual
     15   5  connect by level<2000;
     16 
     17 已创建1999行。
     18 
     19 SQL> commit;
     20 
     21 提交完成。
     22 
     23 SQL> select count(*) as cnt,id from emp1 group by id having count(*)>1;
     24 
     25        CNT         ID
     26 ---------- ----------
     27          3        785
     28          4        465
     29          5        742
     30          3        180
     31          2        604
     32          3        861
     33          2        670
     34          2        787
     35          3        310
     36          3        477
     37          2        647
     38 
     39        CNT         ID
     40 ---------- ----------
     41          2        606
     42          3        380
     43          2        619
     44          3        851
     45          6        719
     46          3        730
     47          3        167
     48          4        363
     49          3        100
     50          3        756
     51          3        665
     52 
     53        CNT         ID
     54 ---------- ----------
     55          2        400
     56          4         83
     57          2        889
     58          2        555
     59          2        729
     60          3        918
     61          2        309
     62          2        691
     63          4        123
     64          2        614
     65          2        967
     66 
     67        CNT         ID
     68 ---------- ----------
     69          3        786
     70          3        658
     71          4         34
     72          2        468
     73          3        472
     74          4        988
     75          4        198
     76          2        692
     77          3        498
     78          2        337
     79          3         30
     80 
     81        CNT         ID
     82 ---------- ----------
     83          2         51
     84          3        964
     85          2        247
     86          3        355
     87          2       1000
     88          2        625
     89          2        724
     90          4        789
     91          2        537
     92          4         54
     93          3        408
     94 
     95        CNT         ID
     96 ---------- ----------
     97          2        878
     98          2        989
     99          2        948
    100          2        173
    101          2        826
    102          3        303
    103          2        584
    104          4        679
    105          3        895
    106          4         44
    107          4         28
    108 
    109        CNT         ID
    110 ---------- ----------
    111          2        974
    112          4        209
    113          2        457
    114          2        976
    115          2         47
    116          4        218
    117          3        620
    118          4        290
    119          2        462
    120          2        475
    121          3        157
    122 
    123        CNT         ID
    124 ---------- ----------
    125          5        394
    126          3        534
    127          2        134
    128          3        903
    129          2        728
    130          3         76
    131          2        522
    132          3        459
    133          2        128
    134          6        235
    135          7        541
    136 
    137        CNT         ID
    138 ---------- ----------
    139          2        494
    140          2        631
    141          3        356
    142          3        387
    143          3          6
    144          3         29
    145          3        949
    146          2        217
    147          5        762
    148          4        558
    149          4        883
    150 
    151        CNT         ID
    152 ---------- ----------
    153          4        435
    154          2        807
    155          4        779
    156          2        518
    157          3        424
    158          2        469
    159          3        652
    160          3        369
    161          2         59
    162          2        120
    163          2        671
    164 
    165        CNT         ID
    166 ---------- ----------
    167          2        696
    168          3        307
    169          2         13
    170          2        608
    171          2        985
    172          2        821
    173          2        573
    174          2        607
    175          3        642
    176          5        880
    177          2        844
    178 
    179        CNT         ID
    180 ---------- ----------
    181          3        121
    182          4        923
    183          2        682
    184          2        651
    185          2        965
    186          2        386
    187          2        271
    188          2        560
    189          2        207
    190          5        299
    191          4        894
    192 
    193        CNT         ID
    194 ---------- ----------
    195          3        155
    196          3        378
    197          3        862
    198          2        297
    199          2        708
    200          2        966
    201          2        854
    202          3        327
    203          2        853
    204          2        827
    205          3        141
    206 
    207        CNT         ID
    208 ---------- ----------
    209          3        587
    210          4        858
    211          2        492
    212          3        181
    213          5        782
    214          2         70
    215          3        881
    216          3        250
    217          2        774
    218          2        479
    219          5        715
    220 
    221        CNT         ID
    222 ---------- ----------
    223          3        538
    224          2        983
    225          5        628
    226          3        390
    227          6        253
    228          3         90
    229          2        425
    230          2        418
    231          3         26
    232          3        251
    233          3        793
    234 
    235        CNT         ID
    236 ---------- ----------
    237          3        535
    238          3        543
    239          2        429
    240          2        340
    241          2        657
    242          2        713
    243          3        993
    244          2        444
    245          5        937
    246          3        586
    247          2        463
    248 
    249        CNT         ID
    250 ---------- ----------
    251          3        567
    252          3        410
    253          3        570
    254          3        806
    255          3        461
    256          3        377
    257          3         21
    258          4        298
    259          3        596
    260          2        433
    261          4        899
    262 
    263        CNT         ID
    264 ---------- ----------
    265          7        229
    266          4        258
    267          2        502
    268          2        992
    269          2        249
    270          2        917
    271          2        132
    272          2        572
    273          2         86
    274          2        626
    275          2        704
    276 
    277        CNT         ID
    278 ---------- ----------
    279          3        112
    280          3        758
    281          3        500
    282          3        661
    283          3        382
    284          2        365
    285          4        273
    286          2        935
    287          3        185
    288          3        412
    289          3        727
    290 
    291        CNT         ID
    292 ---------- ----------
    293          2        941
    294          2        205
    295          2        593
    296          4        962
    297          2        177
    298          2        874
    299          3        404
    300          3        648
    301          3         20
    302          2        224
    303          2         66
    304 
    305        CNT         ID
    306 ---------- ----------
    307          2        149
    308          5        133
    309          2        499
    310          2        896
    311          3         96
    312          2        565
    313          2        991
    314          2        687
    315          4        532
    316          4        215
    317          3        694
    318 
    319        CNT         ID
    320 ---------- ----------
    321          5        556
    322          2        891
    323          3        374
    324          5        329
    325          3        284
    326          3        945
    327          3        432
    328          3        867
    329          2        549
    330          5        697
    331          3        360
    332 
    333        CNT         ID
    334 ---------- ----------
    335          3        367
    336          4        183
    337          6        191
    338          3        609
    339          3        416
    340          4        439
    341          4        496
    342          2        300
    343          3        505
    344          2        163
    345          3         46
    346 
    347        CNT         ID
    348 ---------- ----------
    349          2        270
    350          2         53
    351          2        744
    352          3        845
    353          3        117
    354          2         24
    355          5        164
    356          4         81
    357          3        296
    358          4        764
    359          4        521
    360 
    361        CNT         ID
    362 ---------- ----------
    363          3        467
    364          4        720
    365          2        359
    366          3         85
    367          3        685
    368          3        162
    369          4        613
    370          2        398
    371          4        354
    372          2        622
    373          3        240
    374 
    375        CNT         ID
    376 ---------- ----------
    377          2        526
    378          3        161
    379          3        741
    380          4        201
    381          2        669
    382          2        542
    383          5        583
    384          3        349
    385          2        314
    386          3        119
    387          2        285
    388 
    389        CNT         ID
    390 ---------- ----------
    391          4        887
    392          3        509
    393          2        184
    394          2        836
    395          2        510
    396          2         32
    397          4        777
    398          4        698
    399          2         35
    400          4        663
    401          4        959
    402 
    403        CNT         ID
    404 ---------- ----------
    405          4         48
    406          2        820
    407          6        212
    408          3        453
    409          4        721
    410          3        592
    411          4        938
    412          4        848
    413          4        336
    414          4        392
    415          2        276
    416 
    417        CNT         ID
    418 ---------- ----------
    419          3        350
    420          2        533
    421          2        553
    422          2        840
    423          2        710
    424          3         23
    425          3        995
    426          2        516
    427          2         61
    428          2          8
    429          3         55
    430 
    431        CNT         ID
    432 ---------- ----------
    433          4        849
    434          6        175
    435          2        977
    436          3        634
    437          3        301
    438          2        908
    439          2        761
    440          2        389
    441          2        707
    442          2        456
    443          3        527
    444 
    445        CNT         ID
    446 ---------- ----------
    447          4        264
    448          3        206
    449          3        110
    450          2        830
    451          3        603
    452          3        879
    453          3        689
    454          5        664
    455          5        135
    456          5         37
    457          3        754
    458 
    459        CNT         ID
    460 ---------- ----------
    461          2        426
    462          2        637
    463          4        856
    464          2        318
    465          3        783
    466          2        629
    467          2        987
    468          3        328
    469          3         69
    470          3        344
    471          3        239
    472 
    473        CNT         ID
    474 ---------- ----------
    475          2        402
    476          2        654
    477          3        550
    478          5        700
    479          2        686
    480          2        750
    481          2        486
    482          4        342
    483          2        370
    484          2        226
    485          2        831
    486 
    487        CNT         ID
    488 ---------- ----------
    489          2        748
    490          2        449
    491          2        799
    492          3        375
    493          4        430
    494          5        261
    495          3        568
    496          2         41
    497          2        451
    498          4        228
    499          3         33
    500 
    501        CNT         ID
    502 ---------- ----------
    503          2        443
    504          2        563
    505          2        575
    506          5        508
    507          3        994
    508          2         93
    509          3        266
    510          2        736
    511          4        130
    512          2        341
    513          2        952
    514 
    515        CNT         ID
    516 ---------- ----------
    517          3        368
    518          2        798
    519          4         80
    520          3        277
    521          4        107
    522          4        585
    523          2        946
    524          2        866
    525          3        926
    526          2        376
    527          2        643
    528 
    529        CNT         ID
    530 ---------- ----------
    531          2        828
    532          3        956
    533          2        514
    534          3        850
    535          2        913
    536          3        254
    537          6        915
    538          3        886
    539          3        101
    540          2        795
    541          2         99
    542 
    543        CNT         ID
    544 ---------- ----------
    545          2        973
    546          3        659
    547          3        939
    548          4        667
    549          2        140
    550          6        876
    551          2        591
    552          3        545
    553          2        525
    554          2        909
    555          2        233
    556 
    557        CNT         ID
    558 ---------- ----------
    559          3        434
    560          5        792
    561          2        440
    562          4        898
    563          4        512
    564          4        753
    565          3        165
    566          2        436
    567          2        766
    568          3        362
    569          2        598
    570 
    571        CNT         ID
    572 ---------- ----------
    573          3        942
    574          2        243
    575          2        900
    576          2        238
    577          2        131
    578          2        873
    579          4        552
    580          4        334
    581          3        511
    582          4        476
    583          3        953
    584 
    585        CNT         ID
    586 ---------- ----------
    587          3        401
    588          4         36
    589          2        981
    590          4         18
    591          2        546
    592          2        414
    593          5        822
    594          2        259
    595          3        760
    596          3        172
    597          2        421
    598 
    599        CNT         ID
    600 ---------- ----------
    601          2        969
    602          2        287
    603          2         27
    604          3        927
    605          3        871
    606          5        503
    607          4        530
    608          3        176
    609          4        971
    610          2        236
    611          2        146
    612 
    613        CNT         ID
    614 ---------- ----------
    615          5        186
    616          2         64
    617          3        716
    618          5        984
    619          4        910
    620          4        924
    621          2        124
    622          7        579
    623          4        746
    624          2        490
    625          2        221
    626 
    627        CNT         ID
    628 ---------- ----------
    629          3        751
    630          3        890
    631          5        145
    632          3        517
    633          5        865
    634          2          3
    635          4        446
    636          5        547
    637          3        171
    638          2        907
    639          3        442
    640 
    641        CNT         ID
    642 ---------- ----------
    643          2        819
    644          3        788
    645          2        142
    646          2        863
    647          4        405
    648          2        870
    649          4        278
    650          4        304
    651          2        998
    652          2        864
    653          5         89
    654 
    655        CNT         ID
    656 ---------- ----------
    657          2        571
    658          3        319
    659          2         58
    660          2        936
    661          4        454
    662          2        884
    663          2        641
    664          2        722
    665          2        911
    666          3        115
    667          2        154
    668 
    669        CNT         ID
    670 ---------- ----------
    671          3        928
    672          2        612
    673          2        808
    674          2        267
    675          2          7
    676          6        174
    677          4         62
    678          3        345
    679          2        388
    680          4          9
    681          3        406
    682 
    683        CNT         ID
    684 ---------- ----------
    685          3        139
    686          2        838
    687          2        524
    688          3        705
    689          6        305
    690          2        551
    691          3        842
    692          5        204
    693          7        812
    694          5        737
    695          3        493
    696 
    697        CNT         ID
    698 ---------- ----------
    699          2        531
    700          5        281
    701          2        282
    702          4         16
    703          3        617
    704          2        752
    705          3        940
    706          4        961
    707          2        676
    708          2         12
    709          4        796
    710 
    711        CNT         ID
    712 ---------- ----------
    713          3        706
    714          6        197
    715          2        809
    716          3        501
    717          3        160
    718          2        373
    719          2        885
    720          3        548
    721          4        768
    722          3        960
    723          3        802
    724 
    725        CNT         ID
    726 ---------- ----------
    727          6        428
    728          2        690
    729          3        103
    730          2        539
    731          5        602
    732          3         60
    733          3         67
    734          2         10
    735          2        118
    736          2        219
    737          2        487
    738 
    739        CNT         ID
    740 ---------- ----------
    741          4        272
    742          2        711
    743          4        818
    744          2         92
    745          2        348
    746          2        237
    747          3        488
    748          3        660
    749          3        448
    750          2         73
    751          2        912
    752 
    753        CNT         ID
    754 ---------- ----------
    755          2         39
    756          2         79
    757          4        958
    758          2        361
    759          2        589
    760          4        156
    761          2         65
    762          2        127
    763          2        644
    764          2        317
    765          3        320
    766 
    767        CNT         ID
    768 ---------- ----------
    769          4        930
    770          2        302
    771          2         19
    772          2        843
    773          2        800
    774          2        823
    775          2        656
    776          3        624
    777          2        666
    778          2        106
    779          2        794
    780 
    781        CNT         ID
    782 ---------- ----------
    783          2        150
    784          2        126
    785          3        346
    786          3        313
    787          3        122
    788 
    789 已选择599行。
    790 
    791 SQL> select sum(cnt) from
    792   2  (select count(*)-1 as cnt from emp1 group by id having count(*)>1);
    793 
    794   SUM(CNT)
    795 ----------
    796       1137
    797 
    798 SQL> select count(*) from emp1 a where a.rowid<(select max(rowid) from emp1 b where a.id=b.id);
    799 
    800   COUNT(*)
    801 ----------
    802       1137
    803 
    804 SQL> delete from emp1 a where a.rowid<(select max(rowid) from emp1 b where a.id=b.id);
    805 
    806 已删除1137行。
    807 
    808 SQL> alter table emp1 add constraint emp1_pk primary key(id);
    809 
    810 表已更改。
    811 
    812 SQL>

    -END-

  • 相关阅读:
    springMVC-1
    8-IO总结
    7-RandomAccessFile 随机流
    6-对象流(对象的序列化)
    正则表达式语法手册,以及一些实例
    JavaScript的屏幕对象
    js常用正则表达式表单验证代码
    使用 CSS3 实现超炫的 Loading(加载)动画效果
    ajax处理跨域有几种方式
    javascript实现图片延迟加载方法汇总(三种方法)
  • 原文地址:https://www.cnblogs.com/heyang78/p/15183034.html
Copyright © 2011-2022 走看看