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




postgresql duplicates (2)

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

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);

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


ऐसा प्रतीत होता है कि आप केवल ऐसे 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)






duplicates