MySQL中使用group by分組查詢


group by 表示根據指定字段進行分組查詢

1.什么時候使用group by?

group by 一般是和聚合函數一起使用的

ps:常用聚合函數

count() 計數  sum() 求和  avg() 平均數  max() 最大值  min() 最小值

2.篩選結果使用where和group by ,表示先執行where條件篩選后再進行分組

注意:where語句中不能使用聚合函數

SQL語句的執行順序是:

from-->where-->group by -->having --> select--- >order by;

首先我們知道像SUM()、AVG()、MAX()等等的聚合函數,是對結果進行篩選的,在FROM之后,我們只得到這張表,如果對這張表進行聚合篩選后,那么接下來的GROUP BY該怎么辦呢?GROUP BY是對表進行分組的,但是你都已經WHERE篩選完了,還怎么分組,所以矛盾,所以不能在WHERE中使用聚合函數!

聚集函數也叫列函數,它們都是基於整列數據進行計算的,而where子句則是對數據行進行過濾的,在篩選過程中依賴“基於已經篩選完畢的數據得出的計算結果”是一種悖論,這是行不通的。更簡單地說,因為聚集函數要對全列數據時行計算,因而使用它的前提是:結果集已經確定!

3.篩選結果先用group by和having,表示having是對group by分組結果進行篩選

4.group by可以使用多個字段分組

 


免責聲明!

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



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