2011-12-20 4 views
1

Je table Oracle contient comme champrequête pour créer même ID de groupe pour tous les enregistrements en double

rowindx,mdnnumber,poivalue,groupid 

Je veux assigner même groupId à tous les enregistrements qui sont en double via poivalue.

Je crée une fonction pour cela mais je veux savoir est-ce possible avec sql query? Comment ?

+0

pouvez-vous poster la fonction? –

+0

Comment savez-vous quel groupid utiliser? Par exemple, si une ligne avec poivalue = 1 a groupid = 10 et une autre ligne avec poivalue = 1 mais groupid = 11 quelle ligne doit être mise à jour? –

Répondre

1

En supposant que je peux utiliser la poivalue comme ID de groupe sûr.

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

qui devrait générer le groupId comme 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) 
Questions connexes