MySQL में GROUP BY ... HAVING COUNT(*) = 1 का उपयोग करके आप उन मानों को ढूंढ सकते हैं जो कॉलम में केवल एक बार आते हैं, फिर उनकी गिनती कर सकते हैं। यह अद्वितीय घटनाओं, असामान्य मानों, या डेटा गुणवत्ता जांच के लिए उपयोगी है।
उदाहरण तालिका बनाना
mysql> CREATE TABLE DemoTable (Name VARCHAR(20));
डुप्लिकेट और अद्वितीय नामों के साथ डेटा डालना
mysql> INSERT INTO DemoTable VALUES
-> ('Larry'), ('Larry'), ('Sam'), ('Chris'), ('Sam'),
-> ('Mike'), ('Sam'), ('Larry'), ('Mike'), ('Mike'),
-> ('Carol'), ('Robert');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------+ | Name | +--------+ | Larry | | Larry | | Sam | | Chris | | Sam | | Mike | | Sam | | Larry | | Mike | | Mike | | Carol | | Robert | +--------+
केवल एक बार आने वाले नामों की गिनती
mysql> SELECT COUNT(Name) FROM (
-> SELECT Name FROM DemoTable
-> GROUP BY Name
-> HAVING COUNT(*) = 1
-> ) AS Appear_First_Time;
आउटपुट:
+-------------+ | COUNT(Name) | +-------------+ | 3 | +-------------+
व्याख्या:
- आंतरिक क्वेरी
GROUP BY Nameसे प्रत्येक नाम के लिए पंक्तियों को समूहित करती है HAVING COUNT(*) = 1केवल उन समूहों को रखता है जिनकी गिनती 1 है (Chris, Carol, Robert)- बाहरी
COUNT(Name)इन अद्वितीय नामों की गिनती करता है → 3
अद्वितीय नामों की सूची देखने के लिए:
SELECT Name FROM DemoTable GROUP BY Name HAVING COUNT(*) = 1;
आउटपुट: Chris, Carol, Robert