數據庫查詢中 where,group by,having,order by的時候,執行順序

注意:where肯定在group by 之前。

一,group by 字句可以和where條件語句結合在一起使用。

當結合在一起時,where在前,group by 在後。

即先對select xx from xx的記錄集合用where進行篩選,然後再使用group by 對篩選後的結果進行分組 使用having字句對分組後的結果進行篩選。

二,需要注意having和where的用法區別:

having只能用在group by之後,對分組後的結果進行篩選(即使用having的前提條件是分組)。

where肯定在group by 之前。

where  是對記錄的限定

having 是對分組後結果的限定

where後的條件表達式裏不允許使用聚合函數,而having可以。

三,當一個查詢語句同時出現了where,group by,having,order by的時候,執行順序和編寫順序是:

1.執行where xx對全表數據做篩選,返回第1個結果集。

2.針對第1個結果集使用group by分組,返回第2個結果集。

3.針對第2個結果集中的每1組數據執行select xx,有幾組就執行幾次,返回第3個結果集。

4.針對第3個結集執行having xx進行篩選,返回第4個結果集。

5.針對第4個結果集排序。
————————————————
版權聲明:本文爲CSDN博主「qdu_zhaiH」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/red_red_red/article/details/89335611

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章