- 执行where xxx对全表数据做筛选,返回第1个结果集;
- 针对第1个结果集中使用group by分组,返回第2个结果集;
- 针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集;
- 针对第3个结果集执行having xx进行筛选,返回第4个结果集
- 针对第4个结果集排序
from --> where --> [ result1 ] --> group by --> [ result2 ] --> select () --> [ result3 ] --> having --> [ result4 ] --> order by --> output