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

Postgresql में क्रॉस-फील्ड डुप्लिकेट खोजें

(क्रॉस-कॉलम) डुप्लीकेट फ़ोन नंबर वाली सभी पंक्तियों को खोजने के लिए:

SELECT *
FROM   contacts c
WHERE  EXISTS (
   SELECT FROM contacts x
   WHERE  x.mobile_phone IN (c.mobile_phone, c.home_phone)
       OR x.home_phone   IN (c.mobile_phone, c.home_phone)
   AND x.contact_id <> c.contact_id  -- except self
   );

दो कॉलम में सभी डुप्लीकेट फोन नंबर खोजने के लिए:

SELECT DISTINCT phone
FROM  (
   SELECT mobile_phone AS phone
   FROM   contacts c
   WHERE  EXISTS (
      SELECT FROM mobile_phone x
      WHERE  c.mobile_phone IN (x.mobile_phone, x.home_phone)
      AND    c.contact_id <> x.contact_id  -- except self
      )
   UNION ALL
   SELECT home_phone
   FROM   contacts c
   WHERE  EXISTS (
      SELECT FROM mobile_phone x
      WHERE  c.home_phone = x.home_phone   -- cross-over covered by 1s SELECT
      AND    c.contact_id <> x.contact_id  -- except self
      )
   ) sub;

समान पंक्ति . के दोनों स्तंभों में समान संख्या को दोहराना योग्य नहीं है। मुझे नहीं लगता कि आप उन्हें शामिल करना चाहेंगे। (अभी भी शोर होगा जो एक CHECK . के साथ अस्वीकार करने योग्य हो सकता है बाधा।)



  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 9.x:`xpath_exists` (XMLEXISTS) प्रश्नों को अनुकूलित करने के लिए अनुक्रमणिका

  2. xpath अभिव्यक्ति पर Postgresql अनुक्रमणिका कोई गति नहीं देता है

  3. कुबेरनेट्स टाइमस्केलडब स्टेटफुलसेट:पॉड रिक्रिएशन में खोए हुए परिवर्तन

  4. जेपीए और हाइबरनेट का उपयोग करके INSERT/UPDATE/DELETE कथन को कैसे दोहराएं?

  5. बाइट करने के लिए ज़िप फ़ाइल पायथन 3