mysqlgroup多列
比方有一个学生选课表,表构造如下:
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多列的细致内容,更多请关注 百分百源码网 其它相干文章!