在MySQL中,分組查詢通常使用GROUP BY
子句來實(shí)現(xiàn)。GROUP BY
子句可以將結(jié)果集中的記錄分組,以便對每個(gè)組執(zhí)行聚合函數(shù),如COUNT()、SUM()、AVG()、MIN()和MAX()等。以下是一個(gè)簡單的分組查詢示例:
假設(shè)我們有一個(gè)名為orders
的表,其中包含以下列:order_id
(訂單ID)、customer_id
(客戶ID)和amount
(訂單金額)。
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
amount DECIMAL(10, 2)
);
現(xiàn)在,我們想要查詢每個(gè)客戶的訂單總金額。可以使用以下SQL語句實(shí)現(xiàn):
SELECT customer_id, SUM(amount) as total_amount
FROM orders
GROUP BY customer_id;
這個(gè)查詢將按customer_id
對訂單進(jìn)行分組,并計(jì)算每個(gè)客戶的訂單總金額。結(jié)果集將包含兩列:customer_id
和total_amount
。
如果你還想要查詢每個(gè)客戶的訂單數(shù)量,可以使用以下SQL語句實(shí)現(xiàn):
SELECT customer_id, COUNT(order_id) as order_count, SUM(amount) as total_amount
FROM orders
GROUP BY customer_id;
這個(gè)查詢將按customer_id
對訂單進(jìn)行分組,并計(jì)算每個(gè)客戶的訂單數(shù)量和訂單總金額。結(jié)果集將包含三列:customer_id
、order_count
和total_amount
。