sql中count或sum為條件的查詢示例(sql查詢count)
比如user_num表:
例1:查詢出現(xiàn)過2次的user
往往初學(xué)者會錯誤地認(rèn)為在where 語句里直接使用count()算法,很顯然這個想法是錯誤的,count()方法并不能被用在where子句中,為了解決問題,我們可以在group by子句后面使用HAVING來做條件限制。
錯誤做法:select * from user_num where count(user)>=2 group by user;
正確做法:select * from user_num group by user HAVING count(user)>=2 ;
解釋說明:HAVING 與 WHERE 類似,可用來決定選擇哪些記錄。HAVING 子句在SELECT語句中指定,顯示哪些已用 GROUP BY 子句分組的記錄。在GROUP BY組合了記錄后, HAVING會顯示 GROUP BY 子句分組的任何符合 HAVING 子句的記錄。
例2:查詢單一用戶的num總和大于10的用戶
有前面的經(jīng)驗,把sum()方法寫在HAVING子句中。
正確做法:select * from user_num group by user HAVING sum(num)>10 ;
注意:一個HAVING子句最多只能包含40個表達(dá)式,HAVING子句的表達(dá)式之間可以用AND和OR分割。
相關(guān)文章
SQL Server誤區(qū)30日談 第29天 有關(guān)堆碎片的誤區(qū)
對堆建聚集索引再DROP在我看來是除了收縮數(shù)據(jù)庫之外最2的事了2013-01-01SQL Server中使用判斷語句(IF ELSE/CASE WHEN )案例
這篇文章主要介紹了SQL Server中使用判斷語句(IF ELSE/CASE WHEN )案例,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07清空數(shù)據(jù)庫中所有表記錄 記錄ID恢復(fù)從0開始
近來發(fā)現(xiàn)數(shù)據(jù)庫過大,空間不足,因此打算將數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用SQL語句一次清空所有數(shù)據(jù).找到了三種方法進(jìn)行清空.使用的數(shù)據(jù)庫為MS SQL SERVER.2010-08-08拯救你的數(shù)據(jù) 通過日志恢復(fù)MSSQL數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了如何通過日志恢復(fù)MSSQL數(shù)據(jù)的具體步驟,感興趣的小伙伴們可以參考一下2016-05-05SQL Server創(chuàng)建數(shù)據(jù)庫圖文教程
這篇文章主要介紹了SQL Server創(chuàng)建數(shù)據(jù)庫圖文教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02SQLserver2000 企業(yè)版 出現(xiàn)"進(jìn)程51發(fā)生了嚴(yán)重的異常"錯誤的處理方法
SQL2000 企業(yè)版 出現(xiàn)“進(jìn)程51發(fā)生了嚴(yán)重的異?!卞e誤的解決方法,利用了微軟官方的工具。2009-07-07