在MySQL中,GROUP BY語句用于將結果集按照一個或多個列進行分組。它結合使用聚合函數(如COUNT、SUM、AVG等)對每個組進行計算,從而生成匯總數據。
語法: SELECT 列名1, 列名2, … FROM 表名 WHERE 條件 GROUP BY 列名1, 列名2, … HAVING 條件;
在GROUP BY子句中,可以指定一個或多個列名,用逗號分隔。結果集將按照這些列進行分組。如果指定多個列名,在分組時會按照從左到右的順序進行分組。
在GROUP BY子句后面可以使用HAVING子句進行條件過濾。HAVING子句類似于WHERE子句,但它用于過濾分組后的結果,而不是過濾行。只有滿足HAVING條件的分組才會出現在結果集中。
使用GROUP BY可以實現以下功能:
注意事項:
示例: 假設有一個名為orders的表,包含以下列:order_id, customer_id, order_date, total_amount。要計算每個顧客的訂單總金額,可以使用以下查詢: SELECT customer_id, SUM(total_amount) as total_order_amount FROM orders GROUP BY customer_id;
該查詢按customer_id分組,并計算每個分組的總金額。結果集將包含每個顧客的customer_id和總金額total_order_amount。