1. 程式人生 > >MYSQL 學習筆記記錄整理之二:分組數據

MYSQL 學習筆記記錄整理之二:分組數據

where 分組 學習 供應商 order by 記錄 price 需要 sele

1、創建分組 GROUP BY SELECT ven_id,COUNT(*) AS num_prods FROM products GROUP BY ven_id; 註意: GROUP BY可以包含任意數目的列 GROUP BY列出的每個列都必須是檢索列或者有效的表達式(但不能是聚集函數)。如果在SELECT語句中使用表達式,則必須在GROUP BY中指定相同的表達式,不能使用別名。 除聚集計算語句外,SELECT語句中的每個列都必須在GROUP BY子句中給出。 GROUP BY必須出現在WHERE語句之後,ORDER BY語句之前。 2、過濾分組 HAVING過濾分組,WHERE過濾行。 SELECT cust_id ,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >=2; COUNT(*) >=2--過濾2個以上的訂單分組 例子:列出具有2個(含)以上、價格為10(含)以上的產品的供應商 SELECT cust_id ,COUNT(*) AS num_prods FROM products WHERE prod_price>=10 GROUP BY ven_id HAVING COUNT(*) >=2; 3、分組和排序 例子:檢索總訂單價格大於等於50的訂單號和總計訂單價格 SELECT order_num,SUM(quantiy*item_price) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(quantiy*item_price)>=50; 為按總計訂單價格排序輸出,需要添加ORDER BY語句,如下: SELECT order_num,SUM(quantiy*item_price) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(quantiy*item_price)>=50 ORDER BY ordertotal;

MYSQL 學習筆記記錄整理之二:分組數據