2011-12-20 264 views
1

我有Oracle表包含類似查詢創建相同的組ID的所有重複記錄

rowindx,mdnnumber,poivalue,groupid 

我想同組識別分配給那些通過poivalue重複的所有記錄的字段。

我創建函數,但我想知道是否有可能與SQL查詢?怎麼樣 ?

+0

您可以發佈功能? – 2011-12-20 12:28:34

+0

你怎麼知道使用哪個groupid?例如,如果一行poivalue = 1的groupid = 10,另一行的poivalue = 1但groupid = 11哪行應該更新? – 2011-12-20 12:39:58

回答

1

假設我可以使用poivalue作爲組ID。

Update table set GROUPID=PoiValue 
where POIValue in (
    Select POIValue 
    from table 
    group by poivalue 
    having count(poivalue) > 1) 
0

應該產生GROUPID爲1,2,3 ...

update t 
set groupid = 
(select groupid 
    from (select poivalue, ROWNUM groupid 
      from (select distinct poivalue from t order by poivalue) t2) t2 
      where t2.poivalue = t.poivalue)