回答引用自GPT-4o,由博主小ᶻZ࿆编写,若还有疑问可评论或留言:
你可以通过以下 SQL 查询来找出过去一年内总订单金额排名前10的客户及其订单总金额。我们需要从 Orders 表和 OrderItems 表中获取数据,并计算每个客户的总消费金额。
假设 Orders 表中有 CustomerID(客户ID)和 TotalAmount(订单总金额),而 OrderItems 表中有 OrderID(订单ID)、Quantity(商品数量)和 Price(商品单价)。我们可以按以下步骤进行查询:
SELECT O.CustomerID, SUM(O.TotalAmount) AS TotalOrderAmount
FROM Orders O
JOIN OrderItems OI ON O.OrderID = OI.OrderID
WHERE O.OrderDate >= CURDATE() - INTERVAL 1 YEAR -- 限制查询在过去一年内
GROUP BY O.CustomerID
ORDER BY TotalOrderAmount DESC
LIMIT 10;
查询说明:
- FROM Orders O: 从
Orders 表中选择订单信息,并将其别名为 O。 - JOIN OrderItems OI ON O.OrderID = OI.OrderID: 使用订单ID将
Orders 表与 OrderItems 表进行连接,获取每个订单的商品详细信息。 - WHERE O.OrderDate >= CURDATE() - INTERVAL 1 YEAR: 限制查询仅考虑过去一年的订单。
- GROUP BY O.CustomerID: 按
CustomerID 分组,以便我们可以计算每个客户的总订单金额。 - SUM(O.TotalAmount): 计算每个客户的总订单金额。
- ORDER BY TotalOrderAmount DESC: 根据总订单金额降序排序,找出金额最高的客户。
- LIMIT 10: 只返回前10名客户。
如有帮助,题主可以帮忙采纳一下嘛,谢谢~