サンプル データベース 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;
毎月インクリメントするためにある種のループが必要かもしれないような気がしますが、その形式はわかりませんが、実際の解決策は何でしょうか?