चूंकि आपके पास एक अद्वितीय कुंजी नहीं है, ctid
. का उपयोग करें :
update medias m
set sort_order = new_sort_order
from (
select
ctid,
owner_user_id,
sort_order,
row_number() over w as new_sort_order
from medias
where visible
window w as (partition by owner_user_id order by sort_order asc, created_at asc)
) s
where m.ctid = s.ctid;
ध्यान दें, row_number()
rank()
. से बेहतर हो सकता है जैसा कि पहला कभी डुप्लीकेट नहीं देता है।