sql - update all duplicate rows with different values in pgsql -
i need update duplicate rows different values in same table. table is
table(id, phoneid(int), deviceid(int), userid(int))
there records same deviceid
or phoneid
. example
id phoneid deviceid userid 1 23 3434 1235 2 23 5453 235 <---- same phoneid 1 record 3 43 5453 2343 <---- same deviceid 2 record 4 23 3434 6347 <---- same deviceid , phoneid 1 record
what need change - if phoneid
not unique, set phoneid
userid
(from row). same @ deviceid. (if deviceid
not unique, set deviceid
userid
) final result should this
id phoneid deviceid userid 1 23 3434 1235 2 235 5453 235 <---- phoneid changed userid 3 43 2343 2343 <---- phoneid changed userid 4 6347 6347 6347 <---- phoneid , deviceid changed userid
just update duplicated phoneids , duplicated deviceids (assuming table name "t")
update t set phoneid=userid (select count(*),phoneid t group phoneid having count(*)>1) foo t.phoneid=foo.phoneid; update t set deviceid=userid (select count(*),deviceid t group deviceid having count(*)>1) foo t.deviceid=foo.deviceid;
Comments
Post a Comment