oracle中在一張表中某個欄位下面有重複記錄,有很多方法,但是有一個方法,是比較"高效"的,如下語句:
selectdata_guid
fromadam_entity_datasa
wherea.rowid>(selectmin(b.rowid)
fromadam_entity_datasb
whereb.data_guid=a.data_guid)
如果表中有大量資料,但是"重複資料比較少",那麼可以用下面的語句提高效率
fromadam_entity_datas
wheredata_guidin(selectdata_guid
groupbydata_guid
havingcount(*)>1)
此方法查詢出所有重複記錄了,也就是說,只要是重複的就選出來,下面的語句也許"更高效"
whererowidin(selectrid
from(selectrowidrid,
row_number()over(partitionbydata_guidorderbyrowid)m
fromadam_entity_datas)
wherem1)
oracle中在一張表中某個欄位下面有重複記錄,有很多方法,但是有一個方法,是比較"高效"的,如下語句:
selectdata_guid
fromadam_entity_datasa
wherea.rowid>(selectmin(b.rowid)
fromadam_entity_datasb
whereb.data_guid=a.data_guid)
如果表中有大量資料,但是"重複資料比較少",那麼可以用下面的語句提高效率
selectdata_guid
fromadam_entity_datas
wheredata_guidin(selectdata_guid
fromadam_entity_datas
groupbydata_guid
havingcount(*)>1)
此方法查詢出所有重複記錄了,也就是說,只要是重複的就選出來,下面的語句也許"更高效"
selectdata_guid
fromadam_entity_datas
whererowidin(selectrid
from(selectrowidrid,
row_number()over(partitionbydata_guidorderbyrowid)m
fromadam_entity_datas)
wherem1)