MySQL“order by”在“group by”里面?是否有可能?
您可以使用MAX()聚合函数,而不是在GROUPBY中使用ORDERBY。
语法如下-
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 -> );
使用插入命令在表中插入一些记录。查询如下-
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);
现在您可以使用select语句显示表中的所有记录。查询如下-
mysql> select *from MaxDemo;输出结果
+--------+----------+----------+ | UserId | UserName | UserRank | +--------+----------+----------+ | 1 | Larry | 2 | | 2 | Sam | 1 | | 3 | Sam | 2 | +--------+----------+----------+ 3 rows in set (0.00 sec)
这是使用MAX()函数获取结果的查询-
mysql> select UserName,MAX(UserRank) from MaxDemo group by UserName;输出结果
+----------+---------------+ | UserName | MAX(UserRank) | +----------+---------------+ | Larry | 2 | | Sam | 2 | +----------+---------------+ 2 rows in set (0.00 sec)