समाधान: GROUP BY के साथ MIN() या MAX()
डुप्लीकेट मानों को छोड़कर प्रत्येक समूह से केवल एक पंक्ति प्राप्त करने के लिए GROUP BY के साथ एग्रीगेट फ़ंक्शन का उपयोग करें।
सिंटैक्स
SELECT MIN(yourColumnName1), yourColumnName2 FROM yourTableName GROUP BY yourColumnName2;
व्यावहारिक उदाहरण
टेबल बनाना और डुप्लीकेट डेटा डालना
mysql> CREATE TABLE doNotSelectDuplicateValuesDemo (
-> User_Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> User_Name VARCHAR(20)
-> );
mysql> INSERT INTO doNotSelectDuplicateValuesDemo(User_Name) VALUES
-> ('John'), ('Carol'), ('Carol'), ('Carol'), ('Sam'),
-> ('Mike'), ('Bob'), ('David'), ('Maxwell'), ('Bob'), ('Ramit');
मूल डेटा (11 पंक्तियाँ, डुप्लीकेट के साथ)
Carol: 3 बार, Bob: 2 बार, अन्य: 1-1 बार
डुप्लीकेट हटाने की क्वेरी
mysql> SELECT MIN(User_Id), User_Name
-> FROM doNotSelectDuplicateValuesDemo
-> GROUP BY User_Name;
परिणाम (8 अद्वितीय पंक्तियाँ)
| min(User_Id) | User_Name |
|---|---|
| 1 | John |
| 2 | Carol |
| 5 | Sam |
| 6 | Mike |
| 7 | Bob |
| 8 | David |
| 9 | Maxwell |
| 11 | Ramit |
वैकल्पिक दृष्टिकोण
SELECT DISTINCT User_Name- केवल अद्वितीय नाम (ID के बिना)ROW_NUMBER()विंडो फ़ंक्शन (MySQL 8.0+) - अधिक नियंत्रण के लिएANY_VALUE()- किसी भी मान को चुनने के लिए