Categories(CategoryID, CategoryName, Description)

Products(ProductID, ProductName, SupplierID, CategoryID, Unit, Price)

카테고리와 제품의 테이블은 이렇게 되어있습니다.

categoryid는 1~8번까지 있으므로 각각 모두 출력하고싶어요.

예를 들어서 음료수 카테고리에서 환타라는 제품의 가격이 가장 비싸면 

출력결과 음료수 환타 4000원 이런 식으로 출력하려는데

제가 작성한 sql로는 전체 제품 중에 가격이 가장 비싼 제품 하나만 나오더라구요.

select ca.categoryname,p.productid, p.price

from products p, categories ca

where p.categoryid=ca.categoryid and 

(ca.categoryname, p.price) in

(select ca.categoryname, max(p.price)

from products p, categories ca

group by ca.categoryname);

이렇게 작성했습니다. 각 카테고리별로 하려면 어떻게 해야하나요?