与聚合函数同时出现的列,必须同时出现在 group by子句中
过滤条件中使用了聚合函数,必须用having 替换where
过滤条件中没有使用聚合函数,可以用having 或者where 建议where
having max()
having 使用范围更广
having 是先连接后筛选,where是先筛选后连接
sql执行顺序
1、from join where group by having
2、select distinct 聚合函数
3、order by limit
与聚合函数同时出现的列,必须同时出现在 group by子句中
过滤条件中使用了聚合函数,必须用having 替换where
过滤条件中没有使用聚合函数,可以用having 或者where 建议where
having max()
having 使用范围更广
having 是先连接后筛选,where是先筛选后连接
sql执行顺序
1、from join where group by having
2、select distinct 聚合函数
3、order by limit