查询创建相同的组ID的所有重复记录
问题描述:
我有Oracle表包含类似查询创建相同的组ID的所有重复记录
rowindx,mdnnumber,poivalue,groupid
我想同组识别分配给那些通过poivalue
重复的所有记录的字段。
我创建函数,但我想知道是否有可能与SQL查询?怎么样 ?
答
假设我可以使用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)
您可以发布功能? – 2011-12-20 12:28:34
你怎么知道使用哪个groupid?例如,如果一行poivalue = 1的groupid = 10,另一行的poivalue = 1但groupid = 11哪行应该更新? – 2011-12-20 12:39:58