私はノースウィンド データベースを使用して、多かれ少なかれ複雑なクエリを作成することで、SQL スキルを更新しています。残念ながら、最後のユース ケース「1997 年のすべてのカテゴリの上位 5 つの注文の合計を取得する」の解決策を見つけることができませんでした。
関連するテーブルは次のとおりです。
Orders(OrderId, OrderDate)
Order Details(OrderId, ProductId, Quantity, UnitPrice)
Products(ProductId, CategoryId)
Categories(CategoryId, CategoryName)
次のクエリを試しました
SELECT c.CategoryName, SUM(
(SELECT TOP 5 od2.UnitPrice*od2.Quantity
FROM [Order Details] od2, Products p2
WHERE od2.ProductID = p2.ProductID
AND c.CategoryID = p2.CategoryID
ORDER BY 1 DESC))
FROM [Order Details] od, Products p, Categories c, Orders o
WHERE od.ProductID = p. ProductID
AND p.CategoryID = c.CategoryID
AND od.OrderID = o.OrderID
AND YEAR(o.OrderDate) = 1997
GROUP BY c.CategoryName
ええと...集計関数ではサブクエリが許可されていないことが判明しました。この問題に関する他の投稿を読みましたが、特定のユース ケースの解決策が見つかりませんでした。あなたが私を助けてくれることを願っています...