PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

डुप्लिकेट प्रविष्टियों को कैसे हटाएं?

इनमें से कुछ दृष्टिकोण थोड़े जटिल लगते हैं, और मैं आमतौर पर इसे इस प्रकार करता हूं:

दी गई तालिका table , पंक्ति को अधिकतम फ़ील्ड3 के साथ रखते हुए (फ़ील्ड1, फ़ील्ड2) पर इसे अद्वितीय बनाना चाहते हैं:

DELETE FROM table USING table alias 
  WHERE table.field1 = alias.field1 AND table.field2 = alias.field2 AND
    table.max_field < alias.max_field

उदाहरण के लिए, मेरे पास एक टेबल है, user_accounts , और मैं ईमेल पर एक अद्वितीय बाधा जोड़ना चाहता हूं, लेकिन मेरे पास कुछ डुप्लीकेट हैं। यह भी कहें कि मैं हाल ही में बनाई गई एक (डुप्लिकेट के बीच अधिकतम आईडी) रखना चाहता हूं।

DELETE FROM user_accounts USING user_accounts ua2
  WHERE user_accounts.email = ua2.email AND user_account.id < ua2.id;
  • नोट - USING मानक SQL नहीं है, यह एक PostgreSQL एक्सटेंशन है (लेकिन एक बहुत उपयोगी है), लेकिन मूल प्रश्न में विशेष रूप से PostgreSQL का उल्लेख है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में XMLTABLE

  2. pg_escape_string वास्तव में क्या करता है?

  3. पोस्टग्रेस्क्ल में स्ट्रिंग अक्षर और एस्केप वर्ण

  4. PostgreSQL में आंकड़े लक्ष्य जांचें

  5. psql:सर्वर से कनेक्ट नहीं हो सका:कनेक्शन ने इनकार कर दिया दूरस्थ डेटाबेस से कनेक्ट करते समय त्रुटि