MySQL —— 聚合查询,分组查询 与 联合查询
warning:
这篇文章距离上次修改已过437天,其中的内容可能已经有所变动。
在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;以上代码展示了如何联合两个表,并按客户名称和订单日期分组,计算每个客户每个订单日期的订单数和订单金额总和。
评论已关闭