SQL中Having與Where的區(qū)別
更新時間:2016年01月30日 15:12:45 投稿:hebedich
何時使用having where,請遵照下面的說明:WHERE語句在GROUP BY語句之前;SQL會在分組之前計算WHERE語句。HAVING語句在GROUP BY語句之后;SQL會在分組之后計算HAVING語句。
含義
where
在分組之前就進行選擇操作
having
having在分組操作之后才進行選擇操作,所以having可以選擇聚合函數(shù)
eg:
// 下面這句是可以的 SELECT COUNT(*) FROM A WHERE A.a1>0 GROUP BY a2;
//但是下面就不行 SELECT COUNT(*) FROM A WHERE A.a1>0 and count(*)>1 GROUP BY a2;
//必須要改為having SELECT COUNT(*) FROM A WHERE A.a1>0 GROUP BY a2 HAVING COUNT(*)>1
相關(guān)文章
淺談為什么數(shù)據(jù)庫字段建議設(shè)置為NOT NULL
本文主要介紹了MySQL數(shù)據(jù)庫中將字段設(shè)置為NOT NULL的性能和優(yōu)缺點,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
Navicat運行SQL文件時觸發(fā)“1067?-?Invalid?default?value?for?‘ti
在使用Navicat進行SQL文件操作時,對于MySQL?5.7及以上版本,可能會觸發(fā)“1067?-?Invalid?default?value?for?‘time’”錯誤,本文將詳細說明此問題的成因,并通過實例分析提供完整的解決方案,包括相關(guān)指令的含義和作用,需要的朋友可以參考下2024-12-12

