为什么查出来不一样呢
第一个以fclass,fid分组 第二个以fclass分组 3班的fid不一样 当然不一样了
第一条先按照fclass分组,再按照fid分组,fid应该是主键吧,每条记录都有唯一的fid,相当于把group by fclass 后的分组又展开了,此时的分组数就是记录数,且每个分组中仅有一条记录。
因为第一条根据fclass,fid分组,是fclass不同且fid不同时,fscore的最大值。也就是说,只要这两个字段不一样,就会有一条数据。
而第二条根据fclass分组,也就是说,他不对fid进行判断,只判断fclass,如果fclass不同,取其中的max
所以不一样
第一组是以fclass,fid两个值都相等的时候,才分为一组,而第二组则是只要fclass相等,则为一组
分组的列只会出现一次
select是查询展示出来的内容,group by里的才是分组的依据,两个分组的依据不同,你的第一个sql查出来的分组和select fclass,fid,count () from 表名 group by fclass,fid 的结果是一样的,