Having 的用法(轉(zhuǎn))
今天秦赟給我講解了一下Having的用法,感覺(jué)很好用,也很簡(jiǎn)單,看來(lái)以后發(fā)展的話還是要多在db上下下功夫:下面是Having的學(xué)習(xí)筆記
注意:Having和Where的區(qū)別,簡(jiǎn)單的使用where,如果有g(shù)roup by的話那么就需要用Having在group by后面作為條件,如果在group的前面就需要用where來(lái)做限定條件。
HAVING 子句
在 Select 語(yǔ)句中指定,顯示哪些已用 GROUP BY 子句分組的記錄。在GROUP BY組合了記錄后, HAVING會(huì)顯示 GROUP BY 子句 分組的任何符合 HAVING 子句的記錄。--比較饒口,基本意識(shí)就是分組以后使用Having來(lái)做條件
語(yǔ)法
SELECT 字段表
FROM 表
WHERE選擇準(zhǔn)則
GROUP BY 分組字段表
[HAVING分組準(zhǔn)則]
包含 HAVING 子句的 SELECT 語(yǔ)句具有以下幾個(gè)部分:
部分 | 說(shuō)明 |
---|---|
fieldlist | 要和任何字段名別名, SQL 合計(jì)函數(shù)s, 選擇斷定 (ALL, DISTINCT, DISTINCTROW, 或 TOP)或其他SELECT 語(yǔ)句選擇一起檢索的字段名稱。 |
table | 從其中獲取記錄的表的名稱。欲知更多信息請(qǐng)看 FROM 子句. |
selectcriteria | 選擇準(zhǔn)則。如果此 語(yǔ)句 包含一個(gè) WHERE 子句, Microsoft Jet數(shù)據(jù)庫(kù)引擎 會(huì)在記錄上應(yīng)用WHERE條件,然后把值分組。 |
groupfieldlist | 用來(lái)對(duì)記錄分組的字段名,最多有 10 個(gè)字段。在 groupfieldlist 中字段名的順序?qū)Q定組層次,由最高至最低的層次來(lái)分組。 |
groupcriteria | 一個(gè)表達(dá)式,用以決定應(yīng)顯示的已分組記錄。 |
說(shuō)明
HAVING 是可選的。
HAVING 與 WHERE 類似,可用來(lái)決定選擇哪個(gè)記錄。在使用 GROUP BY對(duì)這些記錄分組后,HAVING 會(huì)決定應(yīng)顯示的記錄:
SELECT CategoryID,
Sum(UnitsInStock)
FROM Products
GROUP BY CategoryID
HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
一個(gè) HAVING 子句最多可包含 40 個(gè)表達(dá)式,并由諸如 And 及 Or 之類的邏輯操作符來(lái)鏈接這些表達(dá)式。
實(shí)例:select count(*) as c, phone from miscflow group by phone having count(*)=5
posted on 2007-09-10 09:38 都市淘沙者 閱讀(710) 評(píng)論(0) 編輯 收藏 所屬分類: Oracle/Mysql/Postgres/