좀 더 복잡한 쿼리를 생성하여 SQL 기술을 새로 고치려면 northwind 데이터베이스를 사용하고 있습니다. 불행히도 마지막 사용 사례에 대한 해결책을 찾지 못했습니다. "1997 년 모든 카테고리에서 가장 큰 5 가지 주문의 합계를 구하십시오." 참여집계 함수에서 SQL - 하위 쿼리
테이블은 다음과 같습니다 : 음 ... 그것은 하위 쿼리가 집계 함수에 허용되지 않는 것으로 밝혀졌다 나는 다음과 같은 쿼리
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
을 시도
Orders(OrderId, OrderDate)
Order Details(OrderId, ProductId, Quantity, UnitPrice)
Products(ProductId, CategoryId)
Categories(CategoryId, CategoryName)
. 이 문제에 대한 다른 게시물을 읽었지만 특정 유스 케이스에 대한 해결책을 찾을 수 없습니다. 희망을 당신이 나를 도울 수 있기를 바랍니다 ...
사용중인 RDBMS 버전은 무엇입니까? 또한 주문이 둘 이상의 카테고리에 속할 수 있기 때문에 질문이 정확하지 않습니다. –
MSSQL 2012를 사용하고 있습니다. 하위 쿼리를 참조하는 경우 WHERE 절이 있습니다 (WHERE c.categoryID = p2.CategoryID) - 한 범주 만 필터링해야합니다. – Thomas