查询创建相同的组ID的所有重复记录

问题描述:

我有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

假设我可以使用poivalue作为组ID。

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

应该产生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)