使用order by和group by的分析

mysql 写sql的顺序:
        select -> from-> where->group by->having->order by. 
但mysql的解析器执行顺序:
        from-> where->group by->having->select->order by.
因此,从执行的流程来看,是先group by 而后在 order by.
order by拿到的结果里已是group by之后的结果.
所以,order by的字段必须是group by 里面已经存在的字段.
---------------------
 
GROUP BY 和 ORDER BY一块儿使用时,ORDER BY要在GROUP BY的后面。
group by a,b,c       则a,b,c三个字段是按照先按a字段对数据行进行排序,再按b字段对那些字段a为同一个值的数据行进行排序,再再按c字段对那些字段a为同一个值且字段b为同一个值的数据行进行排序
order  by a,b,c   也是如此
故而 表T 有a,b,c三个字段,按a分组再按c排序的方法以下: select * from T order  by a,c//两个字段顺序不能颠倒 或者 select * from T group  by a,c//两个字段顺序不能颠倒 ---------------------
相关文章
相关标签/搜索