Birisi SQL sorgumu doğrulayabilirse çok memnun olurum. Aşağıdaki veri kümesi içinMysql Bir sütunda aynı değerdeki satırları seçin ve başka bir farklı
:
MD5 UserPK CategoryPK
ADCDE 1 7
ADCDE 1 4
ADCDE 1 7
dffrf 1 7
dffrf 2 7
dffrf 2 6
dffrf 1 1
iki veya daha fazla satır aynı MD5 değerleri özdeş CatgegoryPK ve iki veya daha fazla FARKLI UserPK değerleriyle var MD5 ve CategoryPK seçmek istiyorum. Başka bir deyişle, iki veya daha fazla farklı kullanıcının (UserPK) aynı dosyaya (UserPK) aynı dosyaya (Md5) atanmış olduğu tüm kayıtların MD5 ve categoryPK değerlerini bilmek isterim. Aynı kullanıcının kategoriyi birden çok kez atadığı kayıtlarla ilgilenmiyorum (farklı bir kullanıcı aynı dosyaya o dosyaya atanmamışsa). Yukarıdaki verilerden Yani
, sadece iade edilecek istiyorum:
md5 CategoryPK
dffrf 7
Yazdığım sorgusu:
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;
iş gibi görünüyor, ama başlamadan önce kullanma öfkeyle, bir şeyleri kaçırdığımda veya bunu yapmanın daha iyi bir yolu varsa, ikinci bir düşünceyi takdir ediyorum.
Teşekkür
Bu tür StackOverflow'daki daha [Kod Review] (http://codereview.stackexchange.com) için daha uygun olabilir. Her iki öneri için de – eggyal