先执行from关键字后面的语句,明确数据的来源,它是从哪张表取来的。
先进行on的过滤,
而后才进行join, 这样就避免了两个大表产生全部数据的笛卡尔积的庞大数据.
接着执行where关键字后面的语句,对数据进行筛选。
再接着执行group by后面的语句,对数据进行分组分类。
各组分别执行having中的普通筛选或者聚合函数筛选。
然后把再根据我们要的数据进行select,可以是普通字段查询也可以是获取聚合函数的查询结果,如果是集合函数,select的查询结果会新增一条字段
将查询结果去重distinct
最后执行order by后面的语句,对最终的结果进行排序。
最后的最后 用limit 加限制
窗口函数是对where或者group by子句处理后的结果进行操作,所以窗口函数原则上只能写在select子句中。