group by的作用是分组,一般和聚合函数一起使用。
比如,学校有多门课程,想查看学分大于3的课程中,每门课程有多少学生选择,就可以用group by,如下:
SELECT COUNT(*), course_id FROM `course` WHERE course_score>"3" GROUP BY course_id ORDER BY course_id;
即先按course_id分组,然后查询每个组中符合条件的学生人数。
group by后面还可以跟多个参数,比如有表如下:
想要查看市内和市外学生选择不同课程的人数,可以如下:
SELECT COUNT(a),b,c FROM test GROUP BY b,c;
结果如下,整理思想是:先按照b分组,此时得到1-5条记录1组(组1),6-8条记录1组(组2)。再按照c分组,发现组1可分成2组。