我们如何将MySQL返回的结果集分成几组?

可以通过在SELECT语句中使用GROUP BY子句来完成。我们可以借助GROUP BY子句指定一列作为分组条件。由于指定了分组条件,因此在特定列中具有相同值的行将被视为单个组。这样,MySQL SELECT语句返回的结果集将被分组。

示例

以下是一个很好的例子来理解它-

我们有一个名为“ 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组,总数为1,平均工资为74000,Asst.Prof,总数为2,平均工资为55000,Prof,总数为2,平均工资为87500 。

猜你喜欢