国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

詳解MySQL 數據分組

瀏覽:24日期:2023-10-07 16:27:09
創建分組

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

例:

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

詳解MySQL 數據分組

GROUP BY

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

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

可以使用HAVING

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

詳解MySQL 數據分組

HAVING和WHERE的差別,WHERE在數據分組前進行過濾,HAVING在分組后進行過濾。當然,兩個也可以在同一條語句中出現。

列出具有2個(含)以上、價格為10(含)以上的產品的供應商

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

詳解MySQL 數據分組

列出具有兩個至上的產品的供應商

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

詳解MySQL 數據分組

分組和排序

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

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

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

詳解MySQL 數據分組

如果按總計訂單價格排序輸出

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

詳解MySQL 數據分組

SELECT子句的順序

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

以上就是詳解MySQL 數據分組的詳細內容,更多關于MySQL數據分組的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 莆田市| 饶阳县| 邹城市| 九台市| 师宗县| 长岭县| 吴忠市| 阳高县| 柘荣县| 尉犁县| 砚山县| 龙口市| 革吉县| 仁化县| 三台县| 万州区| 卢湾区| 合阳县| 犍为县| 济阳县| 寿宁县| 策勒县| 迁安市| 玉林市| 上犹县| 房山区| 河曲县| 郑州市| 子长县| 英吉沙县| 康平县| 望江县| 山西省| 泽州县| 介休市| 维西| 新龙县| 辽宁省| 固始县| 鲁山县| 玉树县|