当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL GROUP BY用法及代码示例


MySQL 的 GROUP BY 子句允许您将列中的相同条目分组。 GROUP BY将为每组返回一条记录。

用法

SELECT column_name(s)
FROM table_name
WHERE conditon
GROUP BY column_name
ORDER BY column_name;

例子

请考虑下表了解学生是否拥有驾驶执照:

student_id

full_name

年龄

has_license

1

天空镇

17

0

2

本·戴维斯

19

1

3

特拉维斯·苹果

18

0

4

亚瑟·大卫

16

0

5

本杰明镇

17

1

可以使用此处的代码创建上述示例表。

与聚合函数一起使用

我们可以将 GROUP BY COUNT MAX MIN SUM AVG 等聚合方法一起使用,以有效返回有关表的信息。

返回每个 age 的学生人数:

SELECT age, COUNT(*) 
FROM drivers_license
GROUP BY age;



+------+----------+
| age  | COUNT(*) |
+------+----------+
|   17 |        2 |
|   19 |        1 |
|   18 |        1 |
|   16 |        1 |
+------+----------+

要检查有执照和无执照的学生的平均年龄:

SELECT has_license, AVG(age) 
FROM drivers_license
GROUP BY has_license;



+-------------+----------+
| has_license | AVG(age) |
+-------------+----------+
|           0 |  17.0000 |
|           1 |  18.0000 |
+-------------+----------+

无驾照学生的平均年龄为17,有驾照学生的平均年龄为18

要检查有或没有执照的学生的最小和最大年龄:

SELECT has_license, MIN(age), MAX(age) 
FROM drivers_license
GROUP BY has_license;



+-------------+----------+----------+
| has_license | MIN(age) | MAX(age) |
+-------------+----------+----------+
|           0 |       16 |       18 |
|           1 |       17 |       19 |
+-------------+----------+----------+

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | GROUP BY。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。