语句的执行顺序:
from(从哪里开始) ---> where(设定选择条件) ---> group by(对指定的列进行分组) --->
having(对聚合函数的分组设定条件) ---> select (选择表格)---> order by(前面所有操作得到结果后进行排序)
这个顺序很重要,能帮助理解为什么有时语句不当时,会报错,比如,where子句一定要放在group by 子句之前,为什么?因为分组查询出来的结果是根据第一个被查询出来的数据作为结果进行后分组,分组过后当然不能对“行”的查询设置条件了
但要注意,书写顺序则稍有不同:
SELECT ...
FROM ...
WHERE ...
GROUP BY ...
HAVING ...
ORDER BY ...