MySQL之指定過濾條件(HAVING)


在 MySQL SELECT 語句中,除了能使用 GROUP BY 子句分組數據外,還可以使用 HAVING 子句過濾分組,在結果集中規定了包含哪些分組和排除哪些分組。

語法格式如下:

HAVING <條件>


其中,<條件>指的是指定的過濾條件。

HAVING 子句和 WHERE 子句非常相似,HAVING 子句支持 WHERE 子句中所有的操作符和語法,但是兩者存在幾點差異:

  • WHERE 子句主要用於過濾數據行,而 HAVING 子句主要用於過濾分組,即 HAVING 子句基於分組的聚合值而不是特定行的值來過濾數據,主要用來過濾分組。
  • WHERE 子句不可以包含聚合函數,HAVING 子句中的條件可以包含聚合函數。
  • HAVING 子句是在數據分組后進行過濾,WHERE 子句會在數據分組前進行過濾。WHERE 子句排除的行不包含在分組中,可能會影響 HAVING 子句基於這些值過濾掉的分組。


【實例】根據 dept_id 對 tb_students_info 表中的數據進行分組,並顯示學生人數大於1的分組信息,輸入的 SQL 語句和執行結果如下所示。

 

 不進行HAVING條件過濾查詢結果如下:


免責聲明!

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



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