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

时间:2011-12-20 11:49:53

标签: oracle plsql

我有oracle表包含像

这样的字段
rowindx,mdnnumber,poivalue,groupid

我想将相同的groupid分配给通过poivalue重复的所有记录。

我为此创建函数但我想知道是否可以使用sql查询?怎么样?

2 个答案:

答案 0 :(得分:1)

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

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

答案 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)