我正在使用示例数据库 Northwind 在 Toad for mySQL 中进行一些 SQL 练习。
此查询的目标是获取每个月的前 3 名客户。最高的意思是他们花的钱最多。我能够加入表格并得出每个客户的所有支出,但我无法获得每个月的最高值。
到目前为止,这是我的查询:
SELECT EXTRACT(MONTH FROM orders.OrderDate) AS `Month`,
orders.CustomerID,`order details`.OrderID,
ROUND(SUM((`order details`.UnitPrice * `order details`.Quantity)*(1 - `order details`.Discount)),2) AS Cost
FROM `order details`
LEFT JOIN orders ON orders.OrderID = `order details`.OrderID
RIGHT JOIN customers ON customers.CustomerID = orders.CustomerID
GROUP BY orders.OrderID, orders.CustomerID, `Month`
ORDER BY Month DESC
LIMIT 3;
我觉得我可能需要某种循环来每月增加一次,但我不知道它的格式,但什么是可行的解决方案?