SQL中Having與Where的區(qū)別
更新時(shí)間:2016年01月30日 15:12:45 投稿:hebedich
何時(shí)使用having where,請(qǐng)遵照下面的說(shuō)明:WHERE語(yǔ)句在GROUP BY語(yǔ)句之前;SQL會(huì)在分組之前計(jì)算WHERE語(yǔ)句。HAVING語(yǔ)句在GROUP BY語(yǔ)句之后;SQL會(huì)在分組之后計(jì)算HAVING語(yǔ)句。
含義
where
在分組之前就進(jìn)行選擇操作
having
having在分組操作之后才進(jìn)行選擇操作,所以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ù)庫(kù)緩存最終一致性的四種方案
緩存是軟件開發(fā)中一個(gè)非常有用的概念,數(shù)據(jù)庫(kù)緩存更是在項(xiàng)目中必然會(huì)遇到的場(chǎng)景,緩存一致性的保證,更是在面試中被反復(fù)問(wèn)到。下面我們就一起來(lái)了解一下2021-04-04
mssql 區(qū)分大小寫的詳細(xì)說(shuō)明
mssql區(qū)分大小寫,沒(méi)想到mysql也區(qū)分大小寫。相關(guān)的文章稍后奉獻(xiàn)給大家2008-03-03
如何查看Navicat加密的數(shù)據(jù)庫(kù)密碼
本機(jī)裝的MySQL數(shù)據(jù)庫(kù)密碼忘記了,打開了Navicat連接過(guò)數(shù)據(jù)庫(kù),不過(guò)密碼是加密的,怎么辦呢?今天小編給大家分享如何查看Navicat加密的數(shù)據(jù)庫(kù)密碼,感興趣的朋友一起看看吧2023-04-04
淺談為什么數(shù)據(jù)庫(kù)字段建議設(shè)置為NOT NULL
本文主要介紹了MySQL數(shù)據(jù)庫(kù)中將字段設(shè)置為NOT NULL的性能和優(yōu)缺點(diǎn),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
Navicat運(yùn)行SQL文件時(shí)觸發(fā)“1067?-?Invalid?default?value?for?‘ti
在使用Navicat進(jìn)行SQL文件操作時(shí),對(duì)于MySQL?5.7及以上版本,可能會(huì)觸發(fā)“1067?-?Invalid?default?value?for?‘time’”錯(cuò)誤,本文將詳細(xì)說(shuō)明此問(wèn)題的成因,并通過(guò)實(shí)例分析提供完整的解決方案,包括相關(guān)指令的含義和作用,需要的朋友可以參考下2024-12-12

