MySQL में GROUP BY के साथ MAX() का उपयोग करके "GROUP BY के अंदर ORDER BY" प्रभाव प्राप्त करना
MySQL में सीधे GROUP BY के अंदर ORDER BY उपयोग नहीं कर सकते। इसके बजाय MAX() या MIN() एग्रीगेट फ़ंक्शन का उपयोग करें।
सिंटैक्स
SELECT yourNameColumnName, MAX(yourRankColumnName) FROM yourTableName GROUP BY yourNameColumnName;
उदाहरण
टेबल बनाएं:
mysql> create table MaxDemo (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(20),
-> UserRank int
-> );
डेटा डालें (Sam के दो रैंक):
mysql> insert into MaxDemo(UserName, UserRank) values('Larry', 2);
mysql> insert into MaxDemo(UserName, UserRank) values('Sam', 1);
mysql> insert into MaxDemo(UserName, UserRank) values('Sam', 2);
प्रत्येक उपयोगकर्ता का अधिकतम रैंक:
mysql> select UserName, MAX(UserRank) from MaxDemo group by UserName;
परिणाम:
+----------+---------------+ | UserName | MAX(UserRank) | +----------+---------------+ | Larry | 2 | | Sam | 2 | +----------+---------------+
अन्य एग्रीगेट फ़ंक्शन
| फ़ंक्शन | उपयोग |
|---|---|
| MAX() | अधिकतम मान (उच्चतम रैंक, नवीनतम तारीख) |
| MIN() | न्यूनतम मान (निम्नतम रैंक, सबसे पुरानी तारीख) |
| SUM() | कुल योग |
| AVG() | औसत |
| COUNT() | पंक्तियों की संख्या |
| GROUP_CONCAT() | सभी मानों को स्ट्रिंग में जोड़ना |