MySQL 聚合函数用于查找出现次数?

mysqlmysqli database更新于 2025/4/22 16:12:17

要计算表中出现的次数,可以使用聚合函数 COUNT() 和 GROUP BY。语法如下 −

SELECT yourColumnName,COUNT(*) as anyVariableName from yourTableName GROUP BY yourColumnName;

为了理解上述语法,让我们创建一个表。创建表的查询如下 −

mysql> create table CountOccurrences
   -> (
   -> CarId int not null auto_increment,
   -> CarName varchar(30),
   -> PRIMARY KEY(CarId)
   -> );
Query OK, 0 rows affected (0.68 sec)

使用 insert 命令在表中插入一些记录。 查询语句如下 −

mysql> insert into CountOccurrences(CarName) values('Aston Martin');
Query OK, 1 row affected (0.10 sec)

mysql> insert into CountOccurrences(CarName) values('BMW');
Query OK, 1 row affected (0.20 sec)

mysql> insert into CountOccurrences(CarName) values('Aston Martin');
Query OK, 1 row affected (0.15 sec)

mysql> insert into CountOccurrences(CarName) values('Honda');
Query OK, 1 row affected (0.20 sec)

mysql> insert into CountOccurrences(CarName) values('BMW');
Query OK, 1 row affected (0.11 sec)

mysql> insert into CountOccurrences(CarName) values('Audi');
Query OK, 1 row affected (0.18 sec)

mysql> insert into CountOccurrences(CarName) values('Aston Martin');
Query OK, 1 row affected (0.11 sec)

mysql> insert into CountOccurrences(CarName) values('Bugatti');
Query OK, 1 row affected (0.22 sec)

mysql> insert into CountOccurrences(CarName) values('BMW');
Query OK, 1 row affected (0.27 sec)

mysql> insert into CountOccurrences(CarName) values('Honda');
Query OK, 1 row affected (0.13 sec)

mysql> insert into CountOccurrences(CarName) values('Audi');
Query OK, 1 row affected (0.13 sec)

mysql> insert into CountOccurrences(CarName) values('BMW');
Query OK, 1 row affected (0.12 sec)

使用 select 语句显示表中的所有记录。查询如下 −

mysql> select *from CountOccurrences;

以下是输出 −

+-------+--------------+
| CarId | CarName      |
+-------+--------------+
|     1 | Aston Martin |
|     2 | BMW          |
|     3 | Aston Martin |
|     4 | Honda        |
|     5 | BMW          |
|     6 | Audi         |
|     7 | Aston Martin |
|     8 | Bugatti      |
|     9 | BMW          |
|    10 | Honda        |
|    11 | Audi         |
|    12 | BMW          |
+-------+--------------+
12 rows in set (0.00 sec)

以下查询使用 count() 和 GROUP BY 来计算列中每个值的出现次数 −

mysql> select CarName,count(*) as TotalCount from CountOccurrences
   -> group by CarName;

以下是输出 −

+--------------+------------+
| CarName      | TotalCount |
+--------------+------------+
| Aston Martin |          3 |
| BMW          |          4 |
| Honda        |          2 |
| Audi         |          2 |
| Bugatti      |          1 |
+--------------+------------+
5 rows in set (0.00 sec)

相关文章


有用资源