您可以为此使用COUNT(*)和GROUP BY。让我们首先创建一个表-mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentAge int
);
使用插入命令在表中插入记录-mysql> insert into DemoTable(StudentAge) values(16);
mysql> insert into DemoTable(StudentAge) values(17);
mysql> insert into DemoTable(StudentAge) values(18);
mysql> insert into DemoTable(StudentAge) values(17);
mysql> insert into DemoTable(StudentAge) values(17);
mysql> insert into DemoTable(StudentAge) values(17);
mysql> insert into DemoTable(StudentAge) values(18);
mysql> insert into DemoTable(StudentAge) values(18);
mysql> insert into DemoTable(StudentAge) values(19);
mysql> insert into DemoTable(StudentAge) values(19);
mysql> insert into DemoTable(StudentAge) values(16);
mysql> insert into DemoTable(StudentAge) values(16);
mysql> insert into DemoTable(StudentAge) values(15);
使用select语句显示表中的所有记录-mysql> select * from DemoTable;
这将产生以下输出-+-----------+------------+
| StudentId | StudentAge |
+-----------+------------+
| 1 | 16 |
| 2 | 17 |
| 3 | 18 |
| 4 | 17 |
| 5 | 17 |
| 6 | 17 |
| 7 | 18 |
| 8 | 18 |
| 9 | 19 |
| 10 | 19 |
| 11 | 16 |
| 12 | 16 |
| 13 | 15 |
+-----------+------------+
13 rows in set (0.00 sec)
以下是计算频率的查询-mysql> select StudentAge,count(*) AS `AgeFrequency` from DemoTable group by StudentAge;
这将产生以下输出-+------------+--------------+
| StudentAge | AgeFrequency |
+------------+--------------+
| 16 | 3 |
| 17 | 4 |
| 18 | 3 |
| 19 | 2 |
| 15 | 1 |
+------------+--------------+
5 rows in set (0.05 sec)