分组 --- 就是将数据表中的记录按照指定的类进行分组
select <column> from <table> [where conditions] group by <column> ;
- select关键字之后使用 * ,表示对查询的结果进行分组之后,显示每组的第一条记录(这种显示是没有意义的)
- select 后 通常显示 分组字段 和 聚合函数(对分组后的数据进行统计、求和、平均值等操作)
having 关键字 --- 对分组后的数据进行筛选
having 是在进行 group by 分组之后,在做筛选,所以在group by 之后使用
select <column> from <table> [where conditions] group by <column> [having conditions];
这条语句执行的顺序:
1.根据where条件查询数据库,筛选出数据,
2.然后再对筛选出来的数据进行 group by分组.
3.最后对group by 分组后的数据进行having 筛选.
4.如果后续还有 order by 语句,则最后再进行排序。
没有 group by 就不存在有 having