Вы могли бы начать с чего-то вроде этого:
SELECT Category, Product
FROM qryEvalProd
WHERE Product =
(SELECT TOP 1 Self.Product
FROM qryEvalProd AS Self
WHERE Self.Category = qryEvalProd.Category
ORDER BY Self.Rank DESC)
Если существует возможность связей (то есть два продукта в одной категории с одинаковым рангом), этот запрос произвольно выберет один из следующих вариантов:их.
Если вы хотите, чтобы он всегда выбирал один и тот же, вы, вероятно, можете заставить его делать то, что вы хотите, изменив предложение ORDER BY.Например, если в случае связывания вы хотите, чтобы он выбрал тот, который имеет первое значение «Продукт» в алфавитном порядке, вы можете изменить предложение ORDER BY на:
ORDER BY Self.Rank DESC, Self.Product
Если вы хотите вместо этогочтобы перечислить все продукты с наивысшим рейтингом, вы можете использовать такой запрос:
SELECT Category, Product
FROM qryEvalProd
WHERE Rank =
(SELECT Max(Self.Rank)
FROM qryEvalProd AS Self
WHERE Self.Category = qryEvalProd.Category)