使用单个MySQL查询对行进行计数和排序

让我们首先创建一个表-

mysql> create table DemoTable783 (
   FirstName varchar(100)
);

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable783 values('Adam');
mysql> insert into DemoTable783 values('Chris');
mysql> insert into DemoTable783 values('Chris');
mysql> insert into DemoTable783 values('Adam');
mysql> insert into DemoTable783 values('Adam');
mysql> insert into DemoTable783 values('Robert');
mysql> insert into DemoTable783 values('Robert');
mysql> insert into DemoTable783 values('Adam');
mysql> insert into DemoTable783 values('Chris');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable783;

这将产生以下输出-

+-----------+
| FirstName |
+-----------+
| Adam      |
| Chris     |
| Chris     |
| Adam      |
| Adam      |
| Robert    |
| Robert    |
| Adam      |
| Chris     |
+-----------+
9 rows in set (0.00 sec)

以下是对MySQL中的行进行计数和排序的查询-

mysql> select FirstName, count(*) from DemoTable783 group by FirstName order by count(*) desc;

这将产生以下输出-

+-----------+----------+
| FirstName | count(*) |
+-----------+----------+
| Adam      | 4        |
| Chris     | 3        |
| Robert    | 2        |
+-----------+----------+
3 rows in set (0.00 sec)