sql - डुप्लिकेट मूल्यों को हटाने के लिए पोस्टग्रेएसएसक्यूएल




postgresql duplicates (4)

ऐसा प्रतीत होता है कि आप केवल ऐसे translationset_id को हटाना चाहते हैं, जो अनुवादक_आईडी कॉलम के संबंध में डुप्लिकेट हैं। इस स्थिति में, हम डुप्लिकेट पंक्तियों के बीच में विचार करने के लिए पोस्टग्रेस की पंक्ति संख्या कार्यक्षमता का उपयोग कर सकते हैं, और फिर उन डुप्लिकेट को हटा सकते हैं।

WITH cte AS
(
    SELECT t.*, ROW_NUMBER() OVER (PARTITION BY translationset_id, key) AS rnum
    FROM yourTable t
)

DELETE FROM yourTable
WHERE translationset_id IN (SELECT translationset_id FROM cte WHERE rnum > 1)

मेरे पासपोर्ट डेटाबेस में एक टेबल है जहां मैं एक अद्वितीय सूचकांक को सम्मिलित करने में भूल गया उस सूचकांक की वजह से मैंने अब मूल्यों को डुप्लिकेट किया है डुप्लिकेट किए गए मानों को कैसे निकालना है? मैं फ़ील्ड translat_Id और कुंजी पर एक अद्वितीय अनुक्रमणिका जोड़ना चाहता हूँ


delete from mytable
where exists (select 1
              from mytable t2
              where t2.name = mytable.name and
                    t2.address = mytable.address and
                    t2.zip = mytable.zip and
                    t2.ctid > mytable.ctid
             );

मुझे लगता है कि आप इसके लिए पूछ रहे हैं:

DELETE FROM tablename WHERE id IN (SELECT id FROM (SELECT id, ROW_NUMBER() OVER (partition BY column1, column2, column3 ORDER BY id) AS rnum FROM tablename) t WHERE t.rnum > 1);


INSERT INTO table (id, name, age) VALUES (1, 'A', 19) ON DUPLICATE KEY UPDATE id = id + 1;

अद्वितीय कुंजी बाधा के बारे में चिंता करने के लिए भी मत भूलना।

ALTER TABLE `table` ADD UNIQUE `unique_key` ( `id` ) 




sql postgresql duplicates