जवाबों:
कुल परिणाम की तुलना के लिए, खंड का उपयोग HAVINGन करें WHERE।
क्वेरी को अंकित मूल्य पर लेना:
SELECT *
FROM db.table
HAVING COUNT(someField) > 1
आदर्श रूप से, खंड GROUP BYमें उचित मूल्यांकन के लिए परिभाषित होना चाहिए HAVING, लेकिन MySQL ग्रुप BY से छिपे हुए कॉलम की अनुमति देता है ...
इस पर एक अद्वितीय बाधा के लिए तैयारी में है someField? ऐसा लगता है कि यह होना चाहिए ...
someFieldमान या खाली परिणाम सेट करता है तो यह पूरी तालिका को वापस कर देगा ।
SELECT username, numb from(
Select username, count(username) as numb from customers GROUP BY username ) as my_table
WHERE numb > 3
आप इसे स्वयं से जुड़ने के लिए भी कर सकते हैं:
SELECT t1.* FROM db.table t1
JOIN db.table t2 ON t1.someField = t2.someField AND t1.pk != t2.pk
हेयर यू गो:
SELECT Field1, COUNT(Field1)
FROM Table1
GROUP BY Field1
HAVING COUNT(Field1) > 1
ORDER BY Field1 desc
एक रास्ता
SELECT t1.*
FROM db.table t1
WHERE exists
(SELECT *
FROM db.table t2
where t1.pk != t2.pk
and t1.someField = t2.someField)
जैसा कि ओएमजी पोनीज़ ने कहा, आप के बाद होने वाले क्लॉज़ हैं। हालाँकि, अगर आप उम्मीद कर रहे थे कि आपको सारांश के बजाय असतत पंक्तियाँ मिलेंगी ("होने" से सारांश बनता है) - यह एक कथन में नहीं किया जा सकता है। आपको उस स्थिति में दो कथनों का उपयोग करना चाहिए।
मैं Sql में दो तालिका के बीच समूह द्वारा एक उदाहरण देता हूं:
Select cn.name,ct.name,count(ct.id) totalcity
from city ct left join country cn on ct.countryid = cn.id
Group By cn.name,ct.name
Having totalcity > 2
यह भी उल्लेख किया जाना चाहिए कि "पीके" एक प्रमुख क्षेत्र होना चाहिए। आत्म-जुड़ना
SELECT t1.* FROM db.table t1
JOIN db.table t2 ON t1.someField = t2.someField AND t1.pk != t2.pk
बिल करविन द्वारा आपको सारे रिकॉर्ड दिए गए हैं जो डुप्लिकेट हैं जो मुझे चाहिए थे। क्योंकि कुछ में दो से अधिक है, आप एक ही रिकॉर्ड एक से अधिक बार प्राप्त कर सकते हैं। मैंने मुख्य फ़ील्ड्स दमन द्वारा समान रिकॉर्ड से छुटकारा पाने के लिए समान फ़ील्ड्स के साथ सभी अन्य तालिका में लिखा था। मैंने कोशिश की
SELECT * FROM db.table HAVING COUNT(someField) > 1
पहले ऊपर। इससे लौटाए गए डेटा डुप्लिकेट में से केवल एक ही देते हैं, इससे कम 1/2 जो आपको देता है लेकिन अगर आप चाहते हैं तो गिनती अच्छी है।
GROUP BYनिश्चित रूप से आवश्यकता है (जब तक कि यह कुछ MySQL नॉन स्टैंडर्ड बात नहीं है)?