mysql中的用法 count group by having

  1. 1

    語法:sql

    group by 字段 having 條件判斷;函數

    group by的用法我已經在上一篇經驗中介紹了it

  2. 2

    仍是已員工績效表爲例class

     
  3. 3

    咱們若是就是查詢每一個部門成績大於89的員工數,能夠這樣寫:基礎

    SELECT dept,COUNT(user_name) FROM ec_uses WHERE score>89 GROUP BY dept;語法

    對這個查詢的過程進行分析,實際上是:先查出績效成績大於89的員工記錄,而後再用count聚合函數統計部門的人數,也就是說where是在聚合以前篩選記錄的,那麼若是咱們要在聚合以後篩選記錄該如何處理呢?im

     
  4. 4

    例如,在上面的基礎上再加一個條件,查詢部門人數大於1的部門統計

    那麼咱們是先要統計出每一個部門的人數,也就是要用count聚合函數,而後再看哪些部門的人數是多於1人的經驗

    也就是篩選條件是在聚合以後的,這時where已不能知足使用,咱們就須要用到having了數據

    sql:

    SELECT dept,COUNT(user_name) count_tmp FROM ec_uses GROUP BY dept HAVING count_tmp>1;

  5. 5

    看執行結果

     
  6. 6
    因此having子句對咱們篩選分組後的數據很是方便
  7. 7

    值得注意的是having後面跟的條件判斷的字段必須是聚合函數返回的結果,不然sql會報錯,例如:

    SELECT dept,COUNT(user_name) count_tmp FROM ec_uses GROUP BY dept HAVING score>1;

相關文章
相關標籤/搜索