使用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//兩個字段順序不能顛倒
---------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM