MySQL —— 聚合查询,分组查询 与 联合查询
在MySQL中,可以使用GROUP BY
子句对数据进行分组,使用AGGREGATE FUNCTIONS
(如SUM()
, COUNT()
, MAX()
, MIN()
, AVG()
)进行聚合查询。
分组查询实例:
假设有一个名为orders
的表,包含order_id
, customer_id
和 amount
三个字段,以下是按customer_id
分组,计算每个客户的订单总数和金额总和的查询:
SELECT customer_id, COUNT(*) AS order_count, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id;
联合查询(也称为JOIN
查询)可以将多个表中的行根据相关联的列合并起来。
联合查询实例:
假设有两个表,customers
(包含customer_id
和customer_name
)和orders
(包含order_id
, customer_id
和amount
),以下是将这两个表通过customer_id
联合起来的查询:
SELECT customers.customer_name, orders.order_id, orders.amount
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id;
联合分组查询:
联合分组查询是联合查询和分组查询的结合,可以根据多个表的列进行分组,并进行聚合操作。
SELECT customers.customer_name, orders.order_date, COUNT(*) AS order_count, SUM(orders.amount) AS total_amount
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id
GROUP BY customers.customer_name, orders.order_date;
以上代码展示了如何联合两个表,并按客户名称和订单日期分组,计算每个客户每个订单日期的订单数和订单金额总和。
评论已关闭