sql中count或sum爲條件的查詢示例(sql查詢count)

在開發時,我們經常會遇到以“累計(count)”或是“累加(sum)”爲條件的查詢,下面使用一個示例說明使用方法

比如user_num表:


例1:查詢出現過2次的user

往往初學者會錯誤地認爲在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的用戶

有前面的經驗,把sum()方法寫在HAVING子句中。
正確做法:select * from user_num group by user HAVING sum(num)>10 ;

注意:一個HAVING子句最多隻能包含40個表達式,HAVING子句的表達式之間可以用AND和OR分割。


轉載於:http://www.jb51.net/article/45566.htm

發佈了7 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章