MySQL में WHERE और GROUP BY का उपयोग करके विशिष्ट कंपनी के अद्वितीय कर्मचारी नाम प्राप्त करना
किसी विशिष्ट कंपनी के कर्मचारियों के अद्वितीय नाम प्राप्त करने के लिए WHERE से कंपनी फ़िल्टर करें और GROUP BY से डुप्लिकेट नाम हटाएं।
उदाहरण के साथ पूर्ण कार्यान्वयन
टेबल बनाना
mysql> CREATE TABLE DemoTable642 (
EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName VARCHAR(100),
EmployeeCompanyName VARCHAR(100)
);
नोट: मूल कोड में टाइपो था (archar, varchar बिना स्पेस), जिसे ठीक किया गया है।
रिकॉर्ड डालना
mysql> INSERT INTO DemoTable642(EmployeeName, EmployeeCompanyName) VALUES
('John', 'Google'), ('Carol', 'Microsoft'), ('John', 'Amazon'),
('Carol', 'Google'), ('John', 'Flipkart');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable642;
आउटपुट:
+------------+--------------+---------------------+
| EmployeeId | EmployeeName | EmployeeCompanyName |
+------------+--------------+---------------------+
| 1 | John | Google |
| 2 | Carol | Microsoft |
| 3 | John | Amazon |
| 4 | Carol | Google |
| 5 | John | Flipkart |
+------------+--------------+---------------------+
5 rows in set (0.00 sec)
Google कंपनी के अद्वितीय कर्मचारी नाम
mysql> SELECT EmployeeName FROM DemoTable642
WHERE EmployeeCompanyName = 'Google'
GROUP BY EmployeeName;
आउटपुट:
+--------------+
| EmployeeName |
+--------------+
| John |
| Carol |
+--------------+
2 rows in set (0.00 sec)
कैसे काम करता है:
WHERE EmployeeCompanyName = 'Google'- केवल Google के कर्मचारी (पंक्ति 1, 4)GROUP BY EmployeeName- नाम के अनुसार समूह, डुप्लिकेट हटाता है- परिणाम: John, Carol (प्रत्येक एक बार)
DISTINCT विकल्प (अधिक सरल और मानक)
SELECT DISTINCT EmployeeName
FROM DemoTable642
WHERE EmployeeCompanyName = 'Google';
यह समान परिणाम देता है लेकिन अधिक पठनीय और मानक SQL है।
GROUP BY vs DISTINCT
| पहलू | GROUP BY | DISTINCT |
|---|---|---|
| उद्देश्य | एग्रीगेशन + डुप्लिकेट हटाना | केवल डुप्लिकेट हटाना |
| एग्रीगेट फ़ंक्शन | समर्थित (COUNT, SUM, आदि) | सीधे समर्थित नहीं |
| क्रम गारंटी | MySQL में क्रमबद्ध कर सकता है | क्रम गारंटी नहीं |
| प्रदर्शन | समान (अनुकूलक समान) | समान |