“group by 字段列表”
表示根据后面的字段来分组,如果只有1个字段,那只是根据这个字段的值来进行一次分组就可以了;若后面有多个字段,那表示根据多字段的值来进行层次分组,分组层次从左到右,即先按第1个字段分组,然后在第1个字段值相同的记录中,再根据第2个字段的值进行分组;接着第2个字段值相同的记录中,再根据第3个字段的值进行分组…依次类推。

group by 后面的字段顺序 只是影响了结果的顺序
不会影响结果的值
如果是 group by a,b
那么就是按照 order by a,b 的顺序分组,因为分组是需要先排序的
反之 group by b,a 就是按照b,a的顺序分组

多字段分组:这些字段值都一样 才是一组

情形1: 多个完全一样的记录,不管是单字段分组,还是多字段分组,结果都一样,只有一组。
情形2: 正常只需要 单字段A分组,但是如果需要展示其他字段而再以其他字段分组,如果A字段值一样的记录,其他字段值也是一样的,即不会因为分组其他字段导致前面A字段被拆开,是可以这么玩的。如果其他字段值可能不一样,则不能这么玩。
(这种情况多出现 1对多关联后,出现的重复记录)


多条完全一样的记录,单字段分组 和 多字段分组 结果一样,都是一组,所以,单字段可以,多字段也可以。
正常,以a字段分组,如果增加别的字段分组,为了不分裂a字段的组,后面字段值要一样,这样才是一组。
a
1 2 3
1 2 3
1 3 3 (这条不行)。
(即,不能影响单字段分组的,只能多出来的分组字段值一样,就不影响了)
(即,正常单字段分组的组里,不能再分出其他组,其他字段值一样,就不会分出其他组了)