-- 示例代码:MySQL 分组排序
-- 假设我们有一个名为 `orders` 的表,包含以下字段:
-- order_id: 订单ID
-- customer_id: 客户ID
-- order_date: 订单日期
-- amount: 订单金额
-- 我们想要按客户分组,并获取每个客户的最新订单信息。
-- 1. 按客户分组并获取每个客户的最新订单日期
SELECT customer_id, MAX(order_date) AS latest_order_date
FROM orders
GROUP BY customer_id;
-- 2. 获取每个客户的最新订单详细信息(包括订单ID和金额)
-- 使用子查询结合 GROUP BY 和 JOIN 来实现
SELECT o.*
FROM orders o
JOIN (
SELECT customer_id, MAX(order_date) AS latest_order_date
FROM orders
GROUP BY customer_id
) latest_orders ON o.customer_id = latest_orders.customer_id AND o.order_date = latest_orders.latest_order_date;
-- 解释:
-- 1. 第一个查询使用 `GROUP BY` 按 `customer_id` 分组,并使用 `MAX(order_date)` 获取每个客户的最新订单日期。
-- 2. 第二个查询通过子查询获取每个客户的最新订单日期,然后与原表进行 `JOIN` 操作,以获取完整的订单详细信息。
上一篇:mysql定义变量
下一篇:创建mysql数据库
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站