飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

MySQL 分组统计 GROUP BY 与 COUNT

时间:2021-12-04  作者:匿名  

您可以使用GROUP BY对列中的值进行分组,并且如果您愿意,可以对该列执行计算。您可以在分组列上使用 COUNT、SUM、AVG 等函数。

要理解GROUP BY子句,请考虑一个employee_tbl表,该表具有以下记录:

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
|  id  | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
|   1  | John | 2007-01-24 |        250         |
|   2  | Ram  | 2007-05-27 |        220         |
|   3  | Jack | 2007-05-06 |        170         |
|   3  | Jack | 2007-04-06 |        100         |
|   4  | Jill | 2007-04-06 |        220         |
|   5  | Zara | 2007-06-06 |        300         |
|   5  | Zara | 2007-02-06 |        350         |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)

现在,假设根据上表,我们要计算每个员工工作的天数。

如果我们按如下方式编写 SQL 查询,那么我们将得到以下结果 :

mysql> SELECT COUNT(*) FROM employee_tbl;
+---------------------------+
|          COUNT(*)         |
+---------------------------+
|             7             |
+---------------------------+

但这不符合我们的目的,我们想分别显示每个人输入的总页数。这是通过将聚合函数与GROUP BY子句结合使用来完成的,如下所示:

mysql> SELECT name, COUNT(*)
   -> FROM   employee_tbl 
   -> GROUP BY name;
+------+----------+
| name | COUNT(*) |
+------+----------+
| Jack |     2    |
| Jill |     1    |
| John |     1    |
| Ram  |     1    |
| Zara |     2    |
+------+----------+
5 rows in set (0.04 sec)

我们将在 SUM、AVG 等其他函数中看到更多与 GROUP BY 相关的功能。

搜你所爱
MySQL教程:目录
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。