group by (分组)
功能:把表中的记录按照字段的不同进行分组
执行顺序:先分组后查询
group by a, b, c的用法
先按a分组,如果a相同,再按b分组,如果b相同,再按c分组,最终统计的是最小分组的信息
使用group by 后 select语句只能出现分组的整体信息,不能出现组内的详细信息
having(对分组之后的信息进行过滤)
1.having子句是用来对分组之后的数据进行过滤,因此使用having时通常都会先使用group by
2.如果没有使用group by 但使用了having,则意味着having把所有的记录当作一组来进行过滤
3.having子句出现的字段必须的是分组之后的组的整体信息,having子句不允许出现组内的详细信息
4.select字段中可以出现别名,但是hacing子句中不能出现字段的别名,只能使用字段最原始的名字,
5.where必须写在having的前面,顺序不可颠倒