(5)、groub by: 根据携带的条件,将临时表t2进行相应的数据分组,并形成临时表t3,如果语句包含了group by则它后面的字段必须出现在select中或者出现在聚合函数中,否则会报SQL语法错误...2、为什么group by和select同时使用时,select中的字段必须出现在group by后或者聚合函数中。
...答: 在SQL执行顺序中可以发现,是先执行group by再执行select,所以此时数据就可以能存在分组的一个字段对应非分组字段的多条数据,如果此时查询非分组字段,则可能出现歧义。...如:使用班级分组,但是查询班级中的学生,此时一个班级对应多个学生,无法在分组的同时又查询单个学生,所以会出现歧义。...那么有没有方式可以在分组的同时也将总数统计出来,这样就无需重复查询数据,提高效率了,答案是有,就是使用官方提供的rollup或者cube或者grouping sets来实现。