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)
SELECT T.name as teacher_name, IFNULL(SUM(C.student_count),0) as student_count
FROM courses C RIGHT JOIN teachers T
ON C.teacher_id = T.id
GROUP BY T.id;
执行输出结果
mysql> SELECT T.name as teacher_name, IFNULL(SUM(C.student_count),0) as student_count
-> FROM courses C RIGHT JOIN teachers T
-> ON C.teacher_id = T.id
-> GROUP BY T.id;
+------------------+---------------+
| teacher_name | student_count |
+------------------+---------------+
| Eastern Heretic | 3200 |
| Northern Beggar | 0 |
| Western Venom | 4570 |
| Southern Emperor | 1520 |
| Linghu Chong | 0 |
+------------------+---------------+
5 rows in set (0.00 sec)
GROUP BY 总结
通过上述案例的学习,我们可以总结出GROUP BY的使用方法
语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;