केवल उन रिकॉर्डों का चयन करें, जिनमें किसी विशेष कॉलम के लिए अलग / कई मान हैं


11

नीचे मेरी सदस्यता तालिका का एक उदाहरण है। ईमेल क्षेत्र में कई मान रखने वाले कुछ रिकॉर्ड हैं। मैं केवल उन रिकॉर्ड्स का चयन करना चाहता हूं जिनमें कई ईमेल मूल्य हैं:

सदस्य तालिका

ID   LASTNAME    FIRSTNAME    EMAIL
567  Jones       Carol        carolj@gmail.com
567  Jones       Carol        caroljones@aol.com
678  Black       Ted          tedblack@gmail.com
908  Roberts     Cole         coleroberts@gmail.com
908  Roberts     Cole         coler@aol.com
908  Roberts     Cole         colerobersc@hotmail.com

मैं चाहूंगा कि परिणाम:

567  Jones       Carol        carolj@gmail.com
567  Jones       Carol        caroljones@aol.com
908  Roberts     Cole         coleroberts@gmail.com
908  Roberts     Cole         coler@aol.com
908  Roberts     Cole         colerobersc@hotmail.com

ध्यान दें कि टेड ब्लैक गायब है क्योंकि उसके पास ईमेल पते के लिए केवल एक प्रविष्टि है।

मुझे स्पष्ट करना चाहिए कि मेरी सदस्यता तालिका में 4 से अधिक कॉलम हैं। फोन और पते आदि के लिए अतिरिक्त कॉलम हैं और एक सदस्य के लिए कई प्रविष्टियां हो सकती हैं क्योंकि उसके पास एक से अधिक फोन नंबर या पता है। मैं केवल उन व्यक्तियों को पकड़ना चाहता हूं जिनके पास कई ईमेल पते हैं।

यह एक डेटाबेस क्लीनअप का हिस्सा है और एक प्राथमिक कुंजी जोड़ी जाएगी। मुझे आगे स्पष्ट करना चाहिए कि कुछ व्यक्तियों में एक ही ईमेल पते के साथ कई प्रविष्टियाँ हो सकती हैं। इस चरण में मैं एक ही ईमेल पते के साथ उन कई प्रविष्टियों को कैप्चर नहीं करना चाहता, लेकिन केवल उन लोगों के पास हैं जिनके पास अलग-अलग ईमेल पते वाली कई प्रविष्टियाँ हैं।

जवाबों:


8

आप कुछ ऐसा कर सकते हैं:

select distinct x.id, x.lastname, x.firstname, x.email
from t as x
join (
    select id
    from t
    group by id
    having count(distinct email) > 1
) as y
    on x.id = y.Id    

3
select x.* 
from member as x
where x.id IN

    (
    select id
    from member
    group by id
    having count(distinct email) > 1
    )
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.