MySQL 如何将MySQL返回的结果集分成组?
可以通过在SELECT语句中使用GROUP BY子句来完成。我们可以使用GROUP BY子句指定列作为分组依据。由于指定了分组依据,具有相同值的行在特定列中被视为单个组。通过这种方式,MySQL SELECT语句返回的结果集将被分成组。
阅读更多:MySQL 教程
例子
以下是一个很好的例子,可以更好地理解它-
我们有一个名为“employees”的表,如下所示-
mysql> Select * from employees;
+------+-------------+--------+------------+
| id | designation | Salary | DoJ |
+------+-------------+--------+------------+
| 100 | Asst.Prof | 50000 | 2016-06-15 |
| 300 | Prof | 85000 | 2010-05-18 |
| 250 | Asso.Prof | 74000 | 2013-02-12 |
| 400 | Prof | 90000 | 2009-05-19 |
| 200 | Asst.Prof | 60000 | 2015-05-11 |
+------+-------------+--------+------------+
5 rows in set (0.00 sec)
现在,借助以下脚本,我们将把输出分成组;
mysql> select designation, count(*), AVG(salary) from employees group by designation;
+-------------+----------+-------------+
| designation | count(*) | AVG(salary) |
+-------------+----------+-------------+
| Asso.Prof | 1 | 74000.0000 |
| Asst.Prof | 2 | 55000.0000 |
| Prof | 2 | 87500.0000 |
+-------------+----------+-------------+
3 rows in set (0.00 sec)
上述查询将结果集按Asso.Prof、Asst.Prof和Prof分组返回,总数分别为1、2和2,平均工资分别为74000、55000和87500。