比方有一个门生选课表,表构造以下:
Table: Subject_Selection Subject Semester Attendee --------------------------------- ITB001 1 John ITB001 1 Bob ITB001 1 Mickey ITB001 2 Jenny ITB001 2 James MKB114 1 John MKB114 1 Erica
我们想统计每门课程有多少个门生报名,运用以下SQL
SELECT Subject, Count(*) FROM Subject_Selection GROUP BY Subject
获得以下效果:
Subject Count ------------------------------ ITB001 5 MKB114 2
由于内外纪录了有5个门生挑选ITB001,2个门生挑选了MKB114。
发生这个效果的原因是:
GROUP BY X意义是将一切具有雷同X字段值的纪录放到一个分组里。
那末GROUP BY X, Y呢?
GROUP BY X, Y意义是将一切具有雷同X字段值和Y字段值的纪录放到一个分组里。
我们下面再接着请求统计出每门学科每一个学期有多少人挑选,运用以下SQL:
SELECT Subject, Semester, Count(*) FROM Subject_Selection GROUP BY Subject, Semester
上面SQL的意义是,对Subject_Selection表中的数据举行分组,将具有雷同Subject和Semester字段值的纪录放到同一个分组里去, 然后对每一个分组中的数据运用聚合函数(COUNT,SUM, AVG,etc)。
获得的效果是:
Subject Semester Count ------------------------------ ITB001 1 3 ITB001 2 2 MKB114 1 2
从表中的纪录我们能够看出这个分组效果是准确的有3个门生在第一学期挑选了ITB001, 2个门生在第二学期挑选了ITB001,
另有两个门生在第一学期挑选了MKB114, 没人在第二学期挑选MKB114。
总结:
在MYSQL中运用GROUP BY对表中的数据举行分组时,
GROUP BY X意义是将一切具有雷同X字段值的纪录放到一个分组里,
GROUP BY X, Y意义是将一切具有雷同X字段值和Y字段值的纪录放到一个分组里
以上就是mysql group多列的细致内容,更多请关注ki4网别的相干文章!