濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解MySQL 數(shù)據(jù)分組

詳解MySQL 數(shù)據(jù)分組

熱門標(biāo)簽:天智外呼系統(tǒng) 北京人工外呼系統(tǒng)價錢 常州電銷外呼系統(tǒng)一般多少錢 福州呼叫中心外呼系統(tǒng)哪家好 400電話鄭州申請 地圖標(biāo)注被騙三百怎么辦 沃克斯電梯外呼線路圖 云南語音外呼系統(tǒng)平臺 房產(chǎn)智能外呼系統(tǒng)品牌

創(chuàng)建分組

分組是在SELECT語句中的GROUP BY 子句中建立的。

例:

SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id;

GROUP BY

  • GROUP BY子句可以包含任意數(shù)目的列,這使得能對分組進(jìn)行嵌套,為數(shù)據(jù)分組提供更細(xì)致的控制。
  • 如果在GROUP BY子句中嵌套了分組,數(shù)據(jù)將在最后規(guī)定的分組商家進(jìn)行匯總。換句話說,在建立分組時,指定的所有列都一起計(jì)算。(所有不能從個別的列取回?cái)?shù)據(jù))。
  • GROUP BY子句中列出的每個列都必須是檢索列或有效的表達(dá)式(但不能是聚集函數(shù))。如果在SELECT中使用表達(dá)式,則必須在GROUP BY子句中指定相同的表達(dá)式,不能使用別名
  • 除聚集計(jì)算語句外,SELECT語句中的每個列都必須在GROUP BY子句中給出。
  • 如果分組列中具有NULL值,則NULL將作為一個分組返回。如果列中有多行NULL值,他們將分為一組。
  • GROUP BY子句必須出現(xiàn)在WHERE子句之后,ORDER BY 子句之前。

過濾分組

如果想要列出至少有兩個訂單的所有骨科,這樣的數(shù)據(jù)就必須基于完整的分組而不是個別的行進(jìn)行過濾。

可以使用HAVING

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

HAVING和WHERE的差別,WHERE在數(shù)據(jù)分組前進(jìn)行過濾,HAVING在分組后進(jìn)行過濾。當(dāng)然,兩個也可以在同一條語句中出現(xiàn)。

列出具有2個(含)以上、價格為10(含)以上的產(chǎn)品的供應(yīng)商

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

列出具有兩個至上的產(chǎn)品的供應(yīng)商

SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id HAVING COUNT(*) >= 2;

分組和排序

ORDER BY GROUP BY
排序產(chǎn)生的輸出 分組行。但輸出可能不是分組的順序
任意列都可以使用(非選擇的列也可以) 只可能使用選擇列或表達(dá)式列,而且必須使用每個選擇列表達(dá)式
不一定需要 如果與聚集函數(shù)一起使用列(表達(dá)式),則必須使用

檢索總計(jì)訂單價格大于等于50的訂單的訂到號和總計(jì)訂單價格

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

如果按總計(jì)訂單價格排序輸出

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

SELECT子句的順序

子句 說明 是否必須使用
SELECT 要返回的列或表達(dá)式
FROM 從中檢索數(shù)據(jù)的表 僅在從表選擇數(shù)據(jù)時使用
GROUP BY 分組說明 僅在按組計(jì)算聚集時使用
WHERE 行級過濾
HAVING 組級過濾
ORDER BY 輸出排序順序
LIMIT 要檢索的行數(shù)

以上就是詳解MySQL 數(shù)據(jù)分組的詳細(xì)內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)分組的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • MySql分組后隨機(jī)獲取每組一條數(shù)據(jù)的操作
  • 基于mysql實(shí)現(xiàn)group by取各分組最新一條數(shù)據(jù)
  • MySQL 子查詢和分組查詢
  • MySQL 分組查詢和聚合函數(shù)
  • MySql Group By對多個字段進(jìn)行分組的實(shí)現(xiàn)方法
  • 詳解MySQL分組排序求Top N
  • mysql獲取分組后每組的最大值實(shí)例詳解
  • Mysql利用group by分組排序

標(biāo)簽:徐州 移動 鹽城 沈陽 沈陽 珠海 拉薩 黔東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解MySQL 數(shù)據(jù)分組》,本文關(guān)鍵詞  詳解,MySQL,數(shù)據(jù),分組,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解MySQL 數(shù)據(jù)分組》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解MySQL 數(shù)據(jù)分組的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    秦皇岛市| 鹿泉市| 南木林县| 阳高县| 陆丰市| 栖霞市| 望都县| SHOW| 中西区| 辽宁省| 黄梅县| 深水埗区| 东源县| 鹤庆县| 泸溪县| 霍山县| 保康县| 黑水县| 周口市| 新绛县| 甘南县| 合作市| 深圳市| 科技| 海宁市| 三亚市| 纳雍县| 泸西县| 宁河县| 奇台县| 玉溪市| 安仁县| 华阴市| 邹平县| 太仆寺旗| 淮安市| 凤庆县| 克什克腾旗| 丰顺县| 大竹县| 高台县|