GROUP BY

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。

GROUP BY 简单实例

我们先从简单的开始学习,先关注我们的教师表teachers,教师来自不同的国家,我们希望统计不同国家教师的人数,可以使用GROUP BY来统计我们查询的结果,并将结果按照不同国籍教师人数从小到大排列,如果相同教师数量则按照国籍名称排列

SELECT country, COUNT(country) as teacher_count
FROM teachers
GROUP BY country
ORDER BY teacher_count, country;

执行输出结果

mysql> SELECT country, COUNT(country) as teacher_count
    -> FROM teachers
    -> GROUP BY country
    -> ORDER BY teacher_count, country;
+---------+---------------+
| country | teacher_count |
+---------+---------------+
| JP      |             1 |
| UK      |             1 |
| USA     |             1 |
| CN      |             2 |
+---------+---------------+
4 rows in set (0.00 sec)

可以看到我们的结果很好的展示了出来

GROUP BY 多表实例

我们课程表courses每节课程的由一个老师授课,而一个老师对应多门课程,下面我们实现SQL语句,统计每个老师教授课程的学生总数,如果教师没有授课则返回学生上课人数为0

执行输出结果

GROUP BY 总结

通过上述案例的学习,我们可以总结出GROUP BY的使用方法

语法

Last updated

Was this helpful?