MySQL之分組數(shù)據(jù)(group by & having)

本文主要介紹MySQL是如何實現(xiàn)分組數(shù)據(jù)的掺逼,以便能匯總表內(nèi)容的子集笛丙。這涉及了兩個SELECT子句锯蛀,分別是GROUP BYHAVING为牍; 分組可以將一個整表分為多個邏輯組能颁,以便能對每個組進(jìn)行聚集計算杂瘸。

I、創(chuàng)建分組

1伙菊、分組是在SELECT語句的GROUP BY子句中建立的败玉。下面看一個例子。

2镜硕、我們以下表為例進(jìn)行操作test1:

#test1
> SELECT vend_id, COUNT(*) AS num_prods
   FROM products
   GROUP BY vend_id

上面的SELECT語句指定了兩個列运翼,vend_id包含產(chǎn)品供應(yīng)商的ID惑朦, num_prods為計算字段(用COUNT)卤恳。GROUP BY子句提示MySQL按照vend_id排序并分組數(shù)據(jù)颈走。這表示對每個vend_id計算num_prods摊求。

輸出結(jié)果如下圖所示:

計算結(jié)果展示供應(yīng)商1001有3個產(chǎn)品,1002有2個產(chǎn)品送滞,1003有7個產(chǎn)品是晨。

3竟稳、因為使用了GROUP BY,就不必指定要計算和估算的每個組了沦补。系統(tǒng)會自動完成乳蓄。GROUP BY子句提示MySQL分組數(shù)據(jù),然后對每個組進(jìn)行聚集夕膀。

II栓袖、過濾分組

1、MySQL允許過濾分組店诗,規(guī)定包括哪些分組,排除哪些分組音榜。過濾分組采用HAVING子句完成庞瘸。

2、下面看一個例子赠叼,我們以下表為例完成test2:

#test2
> SELECT cust_id, COUNT(*) AS orders
   FROM orders
   GROUP BY cust_id
   HAVING COUNT(*)>=2;

輸出結(jié)果如下:

從結(jié)果中我們可以看出擦囊,只有一個cust_id滿足數(shù)量大于等于2的過濾條件。

3嘴办、WHEREHAVING子句的區(qū)別在于瞬场,WHERE完成的是行過濾,而HAVING完成的是分組過濾涧郊。這兩個子句可以同時使用來實現(xiàn)進(jìn)一步的過濾效果贯被,如test3:

#test3
> SELECT vend_id, COUNT(*) AS num_prods
   FROM products
   WHERE prod_prict >= 10
   GROUP BY vend_id
   HAVING COUNT(*) >= 2;

輸出結(jié)果如下:

III、分組和排序

1妆艘、MySQL還提供了一個OEDER BY子句彤灶,在使用GROUP BY子句完成分組之后,可以使用ORDER BY子句對分組進(jìn)行排序批旺。

2幌陕、test4展示了ORDER BY子句的使用:

#test4_1
> SELECT order_num, SUM(quantity*item_price) AS ordertotal
   FROM orderitems
   GROUP BY order_num
   HAVING SUM(quantity*item_price) >= 50;
#test4_2
> SELECT order_num, SUM(quantity*item_price) AS ordertotal
   FROM orderitems
   GROUP BY order_num
   HAVING SUM(quantity*item_price) >= 50
   ORDER BY ordertotal;

【參考】
[1] 《MySQL必知必會》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市汽煮,隨后出現(xiàn)的幾起案子搏熄,更是在濱河造成了極大的恐慌,老刑警劉巖暇赤,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件心例,死亡現(xiàn)場離奇詭異,居然都是意外死亡鞋囊,警方通過查閱死者的電腦和手機契邀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來失暴,“玉大人坯门,你說我怎么就攤上這事微饥。” “怎么了古戴?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵欠橘,是天一觀的道長。 經(jīng)常有香客問我现恼,道長肃续,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任叉袍,我火速辦了婚禮始锚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喳逛。我一直安慰自己瞧捌,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布润文。 她就那樣靜靜地躺著姐呐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪典蝌。 梳的紋絲不亂的頭發(fā)上曙砂,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天,我揣著相機與錄音骏掀,去河邊找鬼鸠澈。 笑死,一個胖子當(dāng)著我的面吹牛截驮,可吹牛的內(nèi)容都是我干的款侵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼侧纯,長吁一口氣:“原來是場噩夢啊……” “哼新锈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起眶熬,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤妹笆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后娜氏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拳缠,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年贸弥,在試婚紗的時候發(fā)現(xiàn)自己被綠了窟坐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哲鸳,靈堂內(nèi)的尸體忽然破棺而出臣疑,到底是詐尸還是另有隱情,我是刑警寧澤徙菠,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布讯沈,位于F島的核電站,受9級特大地震影響婿奔,放射性物質(zhì)發(fā)生泄漏缺狠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一萍摊、第九天 我趴在偏房一處隱蔽的房頂上張望挤茄。 院中可真熱鬧,春花似錦冰木、人聲如沸穷劈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挖腰,卻和暖如春雕沿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背猴仑。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工审轮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辽俗。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓疾渣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親崖飘。 傳聞我的和親對象是個殘疾皇子榴捡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 這一篇最主要是記錄下命令,方便以后查找 使用Mysql 創(chuàng)建數(shù)據(jù)庫 create database mysql_t...
    Treehl閱讀 577評論 0 0
  • (一)幾個數(shù)據(jù)庫相關(guān)的概念 1.數(shù)據(jù)庫 數(shù)據(jù)庫: 保存有組織數(shù)據(jù)的容器朱浴。 數(shù)據(jù)的所有存儲吊圾、檢索、管理和處理實際上是...
    快樂的小飛熊閱讀 523評論 0 1
  • 表 存儲在表中的數(shù)據(jù)是同一種類型的數(shù)據(jù)或清單翰蠢。 數(shù)據(jù)庫中的表有為一個名字來標(biāo)識自己项乒。 表具有一些特性,這些特性定義...
    蛐蛐囍閱讀 1,311評論 0 7
  • 1.表中的任何列都可以作為主鍵梁沧, 只要它滿足以下條件:任意兩行都不具有相同的主鍵值檀何;每一行都必須具有一個主鍵值( ...
    Cherryjs閱讀 656評論 0 0
  • SQL與MySQL簡介 數(shù)據(jù)庫基礎(chǔ) 從SQL的角度來看,數(shù)據(jù)庫就是一個以某種有組織的方式存儲的數(shù)據(jù)集合。我們可以采...
    heming閱讀 3,078評論 1 8