2006年02月6日

SQL::GROUP BY, COUNT and HAVING

欲得知資源被使用次數大於 1 的報表。資源使用記錄儲存在資料表 rsu 中,其中 uno 欄位為資源代碼,資源每被使用一次 ,就會在 rsu 表中增加一筆使用記錄。故需使用 COUNT() 做計數動作,並指定搜尋條件為計數值大於 1 者。但在合計操作中 (It, '合計操作', means a query with aggregate method.) ,不能使用 WHERE 為條件表示,而應使用 HAVING 。


最常見的 aggregate method 就是 SUM() 和 COUNT() 。由於 aggregate method 往往要搭配 GROUP BY 使用,因此對 GROUP BY 和 HAVING 的用法,產生了一個常見的誤解,即以為 HAVING 只能用在 GROUP BY 之後。然而, HAVING 其實是用於對 aggregate method 之結果作條件篩選,由於 aggregate method 可以不配合 GROUP BY 使用,所以 HAVING 也可以出現在沒有 GROUP BY 的查詢中。


Posted by shirock at 樂多Roodo! │23:09 │回應(0)引用(1)SQL/Database
樂多分類:學術/學習 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/1092066
引用列表:
使用 inner join 和 sum() 統計進貨數量。由於要進行分組合計,遂有兩種可行且結果相同的查詢敘述。
sql【石頭閒語】 at 2006年10月24日 11:36