में अलग करें यदि कोई मेरी SQL क्वेरी को सत्यापित कर सकता है तो मैं वास्तव में इसकी सराहना करता हूं।MySQL एक ही कॉलम में एक ही मान के साथ पंक्तियों का चयन करें और
निम्नलिखित डाटासेट के लिए:
MD5 UserPK CategoryPK
ADCDE 1 7
ADCDE 1 4
ADCDE 1 7
dffrf 1 7
dffrf 2 7
dffrf 2 6
dffrf 1 1
मैं MD5 और CategoryPK जहां दो या अधिक पंक्तियों समान MD5 मूल्यों, समान CatgegoryPK और दो या अधिक विभिन्न UserPK मूल्यों के साथ मौजूद हैं का चयन करना चाहते हैं।
दूसरे शब्दों में, मैं उन सभी रिकॉर्डों के एमडी 5 और श्रेणीपीके को जानना चाहता हूं जहां दो या दो से अधिक विभिन्न उपयोगकर्ता (यूजरपीके) ने एक ही फ़ाइल (यूडीपीके) को एक ही फाइल (यूडीपी) को एक ही फाइल (एमडी 5) असाइन किया है। मुझे रिकॉर्ड्स में दिलचस्पी नहीं है, उसी उपयोगकर्ता ने श्रेणी को कई बार सौंपा है, (जब तक कि एक अलग उपयोगकर्ता ने उसी फ़ाइल को उसी श्रेणी में असाइन नहीं किया हो)।
उपरोक्त डेटा सेतो, मैं तो बस लौटा दी चाहते हैं:
md5 CategoryPK
dffrf 7
क्वेरी मैं लिखा है है:
SELECT md5,
count(md5),
count(distinct categorypk) as cntcat,
count(distinct userpk) as cntpk
FROM Hash
group by md5 having count(md5) > 1
and cntpk > 1
and cntcat = 1;
यह काम करने के लिए लगता है, लेकिन उपयोग करने से पहले मैं शुरू यह क्रोध में, अगर मैं कुछ याद कर चुका हूं या ऐसा करने का एक बेहतर तरीका है तो मैं दूसरी राय की सराहना करता हूं।
धन्यवाद
सवाल इस तरह की [कोड समीक्षा] (http://codereview.stackexchange.com) StackOverflow से के लिए अधिक उपयुक्त हो सकता है। दोनों सुझावों के लिए – eggyal